对于接下来的选择结构、循环结构我将以代码的形式展示给大家,让大家能够更加深刻的理解这些结构的联系与区别。
顺序结构
JAVA的基本机构为顺序结构,除非特别指明,否则就按照顺序一句一句来执行,同样,顺序结构是最简单的算法结构。
顺序结构可定义为:语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
选择结构
选择结构可大概分为两类:if选择结构和switch选择结构
-
if选择结构:
-
if单选择结构
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容"); String s = scanner.nextLine(); if (s.equals("hello")) { System.out.println(s); } scanner.close();//强调关闭scanner,以便节省资源 }
-
if双选择结构
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩"); int i = scanner.nextInt(); if(i < 60){ System.out.println("不及格"); }else { System.out.println("及格"); } scanner.close(); }
-
if多选择结构
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入:"); int i = scanner.nextInt(); if (i==100) { System.out.println("满分"); }else if(i >90 && i<100){ System.out.println("优秀"); }else if(i <90 && i>80){ System.out.println("良好"); }else{ System.out.println("及格"); } scanner.close(); //查找1---100的数,可以利用if(){if(){}}嵌套,将其分为1--50,50--100 }
-
switch选择结构:
public static void main(String[] args) { String grade="80"; switch (grade){ case "90": System.out.println("优秀"); break;//要注意一定要用break结束剩下的循环,否则很容易导致错误 case "80": System.out.println("良好"); break; case "70": System.out.println("及格"); break; default://还需要使用default作为结束字符 System.out.println("不及格"); break; } }
同时,在学习选择结构中,我们也可以增加一个知识点,反编译,我们可以通过找到项目位置
复制路径找到项目位置,复制编译好的class文件,如图利用Show in Explorer找到java代码位置
找到位置后将复制好的class文件复制到相应的java同一目录下,就会在idea自动生成class文件,而且不会出现代码乱码等问题,比较好的可以利用这个方法进行反编译。
-
-
循环结构
-
while循环结构
public static void main(String[] args) { int i=0; int sum=0; while(i < 100){ i++; sum+=i; } System.out.println(sum);//注意此输出语句最好放在main()方法下,不要放入while()中 }
-
do…while循环结构
//根据如下代码清楚认识到while和do while循环的区别,也能更好理解这两个循环结构 public static void main(String[] args) { int i=0; int sum=0; while(i < 100){ i++; sum+=i; }//while先判断后执行 System.out.println(sum); do{ i++; sum+=i; }while(i<=100); System.out.println(sum);//do while先执行后判断,至少执行一遍 }
-
for循环
public static void main(String[] args) { //求1-100的奇数和与偶数和 int oddSum=0;//奇数 int sum=0;//偶数 for (int i = 1; i <=100; i++) { if (i % 2 != 0) { oddSum += i; } else { sum += i; } } System.out.println("奇数和为:"+oddSum); System.out.println("偶数和为:"+sum); }
-
增强for循环
public static void main(String[] args) { //增强循环 //我们可以定义一个一维数组 int[] array={10,20,30,40,50}; for (int i = 0; i < 5; i++) { System.out.println(array[i]); } System.out.println("================"); //增强循环,遍历了数组的元素 for (int x: array){ System.out.println(x); }//for(声明语句:代码块) }
对于我们所学到的循环结构,我们可以解决典型的九九乘法表的问题以及打印三角形的问题,其代码如下:
//九九乘法表
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
//1、我可以很容易输出一列的,利用1*i
//2、同理,我们也可以利用j给其打包简单化,所以可以进行循环
//3、我们发现循环有重复项,就利用i<=j得出不重复的项
//4、但是想要美化,我们还得需要利用println()自动换行的性质,就可以得到我们的九九乘法表
}
//打印三角形
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j=5;j>=i;j--){
System.out.print("");
}
for(int j=1;j<=i;j++){
System.out.print("*");
}
for(int j=1;j<i;j++){
System.out.print("*");
}
System.out.println();
}
}
当然,在本次学习中,我们还遇到了break和continue的运用,对此,我们也了解了其主要区别是:
break结束剩余循环,以及continue结束某次循环,执行下一次循环。对此,我们也有代码例子,让你们感受明显区别。
//标签循环 101-150的质数
public static void main(String[] args) {
outer: for(int i=101;i<150;i++){
for (int j=2;j<i/2;j++){
if(i%j==0){
continue outer;
}
}
System.out.print(i+"\t");
}
}
public static void main(String[] args) {
String name="boby";
switch (name){
case "lily":
System.out.println("lily");
break;
case "boby":
System.out.println("boby");
break;
default:
break;
}
}
对于上面是不是有一个outer:这个属于标签循环,大家只要了解一下即可,很少用到。
希望通过本次学习,能让大家对这些结构有个认识 ,以便后面的学习。