5.Java基本语法-----流程控制
一、分类
顺序结构:程序从上而下依次执行
分支结构:if-else if-else、switch-case
循环结构:while循环、for循环、do-while循环、增强for循环
二、具体说明
1.分支结构
1.1if分支结构
说明
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("老年"); } } }
1.2switch-case结构
说明:
① 根据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结构,因为执行效率稍高;
2.循环结构
循环结构的4要素:
①初始化条件;
②循环条件----boolean类型;
③循环体;
④迭代条件;
2.1for循环
说明:
①循环条件部分为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 } }
2.2while循环
说明:
①不要忘记迭代部分,不然会陷入死循环;
②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 } }
2.3do-while循环
说明:
①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 } }
3.无限循环结构
while(true)或for(;;)
4.判断一个循环是否执行完毕?
①循环条件返回false;
②执行到break;
5.循环嵌套
记住一个点:外层循环控制行数,内层循环控制列数。
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(); } } }
6.break关键字
可以使用在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循环了 } }
7.continue关键字
使用在循环结构中,表示结束当次循环。关键字后不能声明执行语句。
代码:
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