Java循环结构 day4

今日任务

今日知识.png

流程控制

顺序结构:程序进入主方法之后依次执行里面的代码。

选择结构:if switch

循环结构:while do-while for

选择结构

if

单分支

重点:

语法结构:
            if(表达式.boolean值){
                执行语句;
            }
        执行顺序:
            1:判定表达式的值,如果表达式的值位true执行对应的执行语句
            2:表达式值是false 整个if语句都不执行
        注意事项:
            当if分支中存在单条语句时可以省略大括号。
            当整个if的表达式无论真假,执行之后都会执行后续代码
        以后多大数的逻辑不单单只有两种情况,有待加强。
        单分支结构永远只能保证一种情况下会做什么操作。

双分支

重点:

语法结构:
            if(boolean值表达式){
                执行语句1;
            }else{
                执行语句2;
            }
        执行顺序:
            1:判定表达式的结果,如果表达式的结果是true
            执行对应的执行语句1
            2:如果表达式的结果是false 那么执行对应的执行语句2
        注意事项:
            可以省略大括号 保证执行语句只有一行即可
            整个判定结果结束执行,执行语句执行之后
            继续执行后续代码

多分支

重点

语法结构:
            if(表达式1){
                执行语句1;
            }else if(表达式2){
                执行语句2;
            }else if(表达式3){
                执行语句3;
            }else if(表达式4){
                执行语句4;
            }................{
            
            }else{
                执行语句n;
            }
            
            
            
        执行顺序:
            1:判定表达式的结果,如果表达式的结果是true
            执行对应的执行语句。整个多分支结果执行结束。
            2:依次判定后续的else if,只要有一个判定结果是true
            那么整个多分支结束。
            3:如果所有的判定条件都为假,执行最后的else内容。

代码例子

输入成绩,显示成绩所在的等级

1.  import java.util.Scanner;  
2.  public class Demo11{  
3.      public static void main(String[] args){    
4.      System.out.println("请输入一个成绩");  
5.          Scanner input = new Scanner(System.in);  
6.          int score=input.nextInt();  
7.          if(score>100){  
8.              System.out.println("请输入合法成绩");  
9.          }else if(score>=90){  
10.             System.out.println("这是A");  
11.         }else if(score>=80){  
12.             System.out.println("这是B");  
13.         }else if(score>=70){  
14.             System.out.println("这是C");  
15.         }else if(score>=60){  
16.             System.out.println("这是D");  
17.         }else{  
18.             System.out.println("这是E");  
19.         }  
20.     }  
21. }  

switch

重点

语法结构:
            switch(表达式){
                case 值1:
                    执行语句1;
                    break;
                case 值2:
                    执行语句2;
                    break;
                case 值3:
                    执行语句3;
                    break;
                .......
                default:
                    执行语句3;
            }
            
            
        执行顺序:
            首先计算switch中的表达式的值然后依次匹配对应的
            case,如果匹配成功,执行对应的执行语句
            这里注意要通过break防止穿透
            如果所有的case都不匹配执行最后的default
        
        注意事项:
            1:防止case穿透
            2: 利用case穿透做些文章
            3: 将没有罗列出来的情况通过default去编写
            4: switch只能做等值判定 if可以做区间判定
            5: default位置可以任意 一般放到最后
            6: switch表达式值不能是long float double boolean 类型
               jdk1.5之后允许switch中存放枚举类型enum
               jdl1.7之后允许switch中存放String类型
                     保证case也是String类型

代码示例

用户输入月份,显示该月份的季节

import java.util.Scanner;
public class Demo09{
    public static void main(String[] args){
        System.out.println("请输入一个月份");
        Scanner input = new Scanner(System.in);
        int month=input.nextInt();
        switch(month){
            case 3:
            case 4:
            case 5:
                System.out.println("这是春天");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("这是夏天");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("这是秋天");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println("这是冬天");
                break;
            default:
                System.out.println("请输入合法的月份");
                break;
        }
    }
}

循环结构

while

重点

        语法结构
            while(循环条件|表达式){
                循环体;//执行语句
            }
        执行顺序
            1:判定循环条件,如果条件为真执行循环体1次
            2:再次判定循环条件,直到循环条件不满足,整个循环结束。
            
        注意事项
            凡是不确定循环次数就可以优先考虑while循环

代码示例

计算1-100的和

public class Demo05{
    public static void main(String[] args){
        
        //1声明变量存放结果
        int sum = 0;
        //2声明变量存放1-100之间的数
        int num = 1;
        while(num<=100){
            sum+=num;
            num++;
        }
            
        System.out.println(num+"=="+sum);
        
        
    }
}

do-while

重点

语法结构
            do{
                循环体;
            }while(循环条件);
            
            
        执行顺序
            1:先执行循环提一次
            2:再判定循环条件,如果条件为真执行循环体1次
            3:再次判定循环条件,直到循环条件不满足,整个循环结束。
            
        注意事项
            while先判定在执行
            do-while先执行在判定

代码示例

生成0-100随机数,直到生成88为止,停止循环!

public class Demo18{
    public static void main(String[] args){
        int num=0;
        do{
            num =(int)(Math.random()*101);
        }while(num!=88);
            System.out.println("num="+num);
    }
}

for

重点

语法结构
            for(循环变量;循环条件;改变循环变量的表达式){
                循环体;
            }
            
            
        执行顺序
            1:声明循环变量 (降低生命周期 调高内存利用率)
            2:判定循环条件 如果循环条件为真,执行循环体一次
            3:改变循环变量的值,判定循环条件,直到循环条件不满足
            整个循环结束
        注意事项
            1:确定循环次数可以使用for循环

代码示例

计算1+2+3+4+5+6+7+8+9 的值

public class Demo16{
    public static void main(String[] args){
        
        int count=0;
        for(int i=1;i<=9;i++){
            count+=i;
        }
        System.out.println("和为"+count);
    }
}

Tips

  • break:
    switch 防止穿透
    跳出当前循环 break所在的循环
  • return: 结束当前方法

你可能感兴趣的:(Java循环结构 day4)