顺序结构:程序从上而下依次执行
分支结构:if-else if-else、switch-case
循环结构:while循环、for循环、do-while循环、增强for循环
说明
1.else结构是可选的;
2.if-else结构可以嵌套使用;
3.如果if-else结构后只有一条执行语句,则{}是可以省略的。但不建议省略,可读性差
代码1:
public class test { public static void main(string[] args) { int age = 18; if (age >= 18) { system.out.println("你已经成年了");//你已经成年了 } system.out.println("恭喜你");//恭喜你 } }
代码2:
public class test { public static void main(string[] args) { int age = 23; if (age >= 18) { system.out.println("你已经成年了");//你已经成年了 }else{ system.out.println("未成年了有很多限制"); } system.out.println("end");//end } }
代码3:
public class test { public static void main(string[] args) { int age = 30; if (age < 18) { system.out.println("未成年"); } else if (age < 30) { system.out.println("青壮年"); } else if (age < 50) { system.out.println("壮年");//壮年 }else{ system.out.println("老年"); } } }
说明:
① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
③ switch结构中的表达式,只能是如下的6种数据类型之一:byte 、short、char、int、枚举类型(jdk5.0新增)、string类型(jdk7.0新增)
④ case 之后只能声明常量。不能声明范围。
⑤ break关键字是可选的。
⑥ default:相当于if-else结构中的else. default结构是可选的,而且位置是灵活的。
⑦ 如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
⑧ break在switch-case中是可选的
public class test { public static void main(string[] args) { string season = "summer"; switch (season){ case "spring": system.out.println("春暖花开"); break; case "summer": system.out.println("夏日炎炎");//夏日炎炎 break; case "autumn": system.out.println("秋高气爽"); break; case "winter": system.out.println("冰天雪地"); break; default: system.out.println("季节输入有误"); break; } } }
分支结构的使用场景:
对于确定的常量,不涉及到范围,优先考虑使用switch-case结构,因为执行效率稍高;
①初始化条件;
②循环条件----boolean类型;
③循环体;
④迭代条件;
说明:
①循环条件部分为boolean类型的表达式,一般当循环条件部分返回false时结束循环;
②初始化条件部分可以声明多个相同类型的变量;
③迭代部分也可以声明多个
代码:
public class test { public static void main(string[] args) { //遍历1-100之间的偶数,并打印其和 int sum = 0; for (int i = 1;i <= 100;i++){ if (i % 2 == 0) { system.out.println(i); sum += i; } } system.out.println(sum);//2550 } }
说明:
①不要忘记迭代部分,不然会陷入死循环;
②while循环和for循环是可以相互转换的;
代码:
public class test { public static void main(string[] args) { //遍历1-100之间的奇数,并打印其和 int sum = 0; int i = 1; while (i <= 100) { if (i % 2 != 0) { system.out.println(i); sum += i; } i++; } system.out.println(sum);//2500 } }
说明:
①do-while结构至少执行一次循环体;
②开发中,更多的使用的是while和for,do-while很少使用;
代码:
public class test { public static void main(string[] args) { //遍历1-100之间的奇数,并打印其和 int sum = 0; int i = 1; do { if (i % 2 != 0) { system.out.println(i); sum += i; } i++; }while (i <= 100); system.out.println(sum);//2500 } }
while(true)或for(;;)
①循环条件返回false;
②执行到break;
记住一个点:外层循环控制行数,内层循环控制列数。
public class test { public static void main(string[] args) { //九九乘法表 for (int i = 1;i <= 9;i++){ for (int j = 1;j <= i;j++){ system.out.print(j + "*" + i + "=" + (j * i) + "\t"); } system.out.println(); } } }
可以使用在switch-case结构、循环结构中。表示结束当前循环,关键字后不能再声明执行语句。
代码:
public class test { public static void main(string[] args) { for (int i = 0;i < 10;i++){ if (i == 3) { break; } system.out.println("i = " + i); } system.out.println("游戏结束");//这条语句可以执行,因为已经出了for循环了 } }
带标签的break:
public class test { public static void main(string[] args) { label:for (int i = 0;i < 10;i++){ for (int j = 0;j < 10;j++){ if (j == 4) { break label; } system.out.println("i * j = " + (i * j)); } } system.out.println("游戏结束");//这条语句可以执行,因为已经出了for循环了 } }
使用在循环结构中,表示结束当次循环。关键字后不能声明执行语句。
代码:
public class test { public static void main(string[] args) { for (int i = 0;i < 100;i++){ if (i % 10 == 0) { continue; } system.out.println(i); } } }
作者:java之美
日期:2020-03-28
如对本文有疑问, 点击进行留言回复!!
HashMap、Hashtable、ConcurrentHashMap三者间的异同
解决RecycleView 中Item包含Edittext时,滑动view复用导致数据错乱的问题
多线程、同步工作原理、死锁案例、Lock接口、线程的生命周期的讲解及实现
网友评论