1、分支结构

1.if

  • 根据判定的结果(真或假)决定执行某个分支代码。 ```java //if循环语句格式 //格式1: if(条件表达式){ 语句体; }

//格式2: if(条件表达式){ 语句体; }else{ 语句体; }

//格式3: if(条件表达式1){ 语句体1; }else if(条件表达式2){ 语句体2; }else if(条件表达式3){ 语句体3; } …… else{ 语句体n+1; }

  1. <a name="O28xG"></a>
  2. ### 2.switch
  3. - **是匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。**
  4. **switch分支注意事项:**
  5. 1. **表达式只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。**
  6. 1. **case给出的值不允许重复,且只能是字面量,不能是变量。**
  7. 1. **不能忘记写break,否则会出现穿透现象。**
  8. ```java
  9. //switch循环语句格式
  10. switch(表达式){
  11. case 值1:
  12. 执行代码……;
  13. break;
  14. case 值2:
  15. 执行代码……
  16. break;
  17. ……
  18. case 值n-1:
  19. 执行代码……;
  20. break;
  21. default:
  22. 执行代码……;
  23. }

执行流程:

  1. 先执行表达式的值,拿着这个值去与case后的值进行匹配。
  2. 匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。
  3. 如果casae后的值都不能匹配则执行default代码。 ```java switch (weekday){ case “周一”: System.out.println(“今天周一”); break; case “周二”: System.out.println(“今天周二”); break; case “周三”: System.out.println(“今天周三”); break; case “周四”: System.out.println(“今天周四”); break; case “周五”: System.out.println(“今天周五”); break; case “周六”: System.out.println(“今天周六”); break; case “周日”: System.out.println(“今天周日”); break; default: System.out.println(“错误”); }
  1. <a name="zAPZh"></a>
  2. ### 3.switch穿透性
  3. - **存在多个case分支的功能代码是一样时,可以用穿透性把流程集中到同一处处理,这样可以简化代码**
  4. ```java
  5. //穿透前
  6. switch(month){
  7. case 1:
  8. System.out,println("31天");
  9. break;
  10. case 3:
  11. System.out.println("31天");
  12. break;
  13. case 5:
  14. System.out.println("31天");
  15. break;
  16. case 7:
  17. System.out.println("31天");
  18. break;
  19. case 8:
  20. System.out.println("31天");
  21. break;
  22. case 10:
  23. System.out.println("31天");
  24. break;
  25. case 12:
  26. System.out.println("31天");
  27. break;
  28. default:
  29. System.out.println("其他");
  1. //穿透后
  2. switch(month){
  3. case 1:
  4. case 3:
  5. case 5:
  6. case 7:
  7. case 8:
  8. case 10:
  9. case 12:
  10. System.out.println("31天");
  11. break;
  12. default:
  13. System.out.println("其他");

2、循环结构

三种循环的区别

  1. for循环和while循环(先判断后执行)。
  2. do…while(第一次先执行后判断)。

for 和 while 的区别

  1. for循环和while循环的执行流程是一摸一样的。
  2. 如果已知循环次数建议用for循环,如果不清楚要循环多少次建议用while循环。
  3. for循环中,控制循环的变量只在循环中可以使用。while循环中,控制循环的变量在循环后还可以继续使用。

    1.for循环

  • 控制一段代码反复执行很多次。

3、程序流程控制语句 - 图1

  1. //求和
  2. int sum = 0;
  3. for (int i = 1; i < 6; i++) {
  4. sum +=i;
  5. }
  1. //求奇数和
  2. int sum = 0;
  3. for (int i = 1;i <=10;i++) {
  4. if (i % 2 == 1) {
  5. sum += i;
  6. }
  7. }
  8. ———————————————————————————————
  9. int sum = 0;
  10. for (int i = 1;i <= 10;i += 2) {
  11. sum += i;
  12. }
  1. //水仙花数
  2. for (i = 100;i <= 999;i++){
  3. int ge = i % 10;
  4. int shi = i / 10 % 10;
  5. int bai = i / 100;
  6. if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
  7. System.out.print(i+" ");
  8. }
  9. }

2.while循环

  • 当知道循环几次时使用for循环;不知道时可以使用while循环。

3、程序流程控制语句 - 图2

  1. int i = 0;
  2. while (i < 3){
  3. System.out.println("Hello World");
  4. i++;
  5. }
  1. double peakHeight = 8848860;
  2. double paperThickness = 0.1;
  3. int count = 0;
  4. while (paperThickness < peakHeight){
  5. paperThickness *= 2;
  6. count++;
  7. }
  8. System.out.println("折叠的次数:"+count);
  9. System.out.println("纸张的厚度:"+paperThickness);

3.do-while循环

  • 特点:一定会先执行一次循环体。

3、程序流程控制语句 - 图3

  1. int i = 0;
  2. do {
  3. System.out.priintln("Hello World");
  4. i++;
  5. } while (i < 3);

4.死循环

  • 一直循环执行下去,如果没有干预不会停止。 ```java for ( ; ; ) { System.out.println(“Hello World”); }

while (true) { System.out.println(“Hello World”); }

do { System.out.println(“Hello World”); } while (true);

  1. <a name="U0dVV"></a>
  2. ### 5.嵌套循环
  3. - **特点:外部循环一次,内部循环全部执行完一次。**
  4. ```java
  5. for (int i = 0; i < 3;i++) {
  6. for (int j = 0;j < 5;j++) {
  7. System.out.println("Hello World");
  8. }
  9. }

3、跳转关键字

  • break :跳出并结束当前所在循环的执行。(只能用于结束所在循环,或者所在switch分支的执行)
  • continue :用于跳出当前循环的当前执行,进入下一次循环。(只能在循环中进行使用)
  • return; : 可以立即跳出并结束当前方法的执行;return关键字可以放在任何方法中。