Java基礎Day3

Day03總結

能夠用switch語句控制程序的執行流程

switch語句的格式:
switch(將要匹配的值){
    case 值1:
        語句體1;
        break:
    case 值2:
        語句體2;
        break;
    ...
    default:
        語句體n+1;
        break;
}
​
​
switch語句的執行流程:
    1.拿着將要匹配的值,跟case給出的選項逐個匹配
        匹配成功:就執行對應的語句體,然後再由break語句,結束掉整個的switch
    2.如果所有的case都匹配失敗了,將會執行最後的default進行收尾
    
注意事項:
    1.case後面的值不允許重複
    2.case後面的值只能是常量,不能是變量
    
問題:
1.default語句是否可以省略不寫?
        可以省略,但是不建議,因爲可以對範圍外的錯誤值給出提示.
2.switch語句中可以接受的類型爲?
        基本數據類型: byte, short, char, int
        引用數據類型:jdk5版本之後可以是枚舉,jdk7版本之後,可以是String字符串
3.break語句是否可以省略?
         可以省略,但是可能出現case穿透現象.

能夠說出case穿透產生的原因

答:省略了break就會出現該問題
問題:什麼時候去使用case穿透?
        如果發現switch語句當中,多個case的語句體是相同的,就可以考慮是用case穿透去優化代碼.
    switch(week){
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("工作日");
            break;
    }

能夠定義for循環語句並闡述執行流程

for語句的格式:
for(初始化語句; 循環判斷語句; 循環後的步進語句){
    循環體;
}
​
執行流程:
    1.執行初始化語句,在整個循環中只執行依次
    2.執行循環判斷語句:
            false:結束掉整個循環
            true:執行循環體
            
    3.執行循環後的步進語句
    4.執行循環判斷語句
            false:
            true:
            ...

能夠使用for循環完成累加與統計的需求

思路:
1.在需求中看到了[求和], 就要定義一個求和變量
        int sum = 0;
2.在需求中看到了[統計\次數],就要定義一個計數器變量
        int count = 0;
​
晚上必須掌握的案例:
​
public static void main(String[] args){
    int sum = 0;
    int count = 0;
    for (int i = 100; i <= 999; i++){
        int ge = i % 10;
        int shi = i / 10 % 10;
        int bai = i / 100;
        
        if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
            System.out.println(i);
            count++;
            sum += i;
        }
    }
    
    System.out.println(sum);
    System.out.println(count);
}

能夠定義while循環並闡述執行流程

while格式:
​
        初始化語句;
        while(循環體判斷語句){
            循環體;
            循環後的步進語句;
        }
​
執行流程:
        1.執行初始化語句,在整個循環只執行一次
        2.執行循環判斷語句:
                false:結束整個循環
                true:執行循環體
        3.執行循環後的步進語句
        4.執行循環判斷語句
                false:
                true:
                ...     
                        

能夠定義do...while循環語句並闡述執行流程

格式:
        初始化語句;
        do{
            循環體;
            循環後的步進語句;
        }while(判斷語句);
​
執行流程:
1.執行初始化語句;
2.執行循環體語句;
3.循環後的步進語句
4.判斷語句
        false:整個循環結束
        true:回到第二步繼續
        
特點:
    無論判斷條件是否滿足與,都至少執行一次循環體
    原因:代碼從上到下依次執行,當執行了循環體的時候,還沒執行到判斷語句.

能夠說出三種循環的區別

1.(for, while) 和 (do...while循環的區別)
    for, while : 必須在判斷條件的滿足情況下,纔會執行循環體
    do...while 無論判斷條件是否滿足,都至少執行一次循環體
2.for循環和while循環的區別
        for循環內部定義的變量,在循環結束後,會從內存中釋放掉,所以,在循環結束後,就無法在使用控制循環的那個變量了.
        
        for(int i =1; i <= 10; i++){
            
        }
​
        System.out.println(i);   // 找不到符號.
​
        
        while循環中,控制循環的變量,不歸屬於while語句,所以,在循環結束後,可以繼續使用控制循環的那個變量.
            
            int i= 1;
            while(i<=10){
                i++;
            }
            System.out.println(i);
​
重點: for循環,和while循環,今後該如何選擇?
        如果明確循環次數,推薦使用for
        如果不明確循環次數,推薦使用while
            場景:猜數字小遊戲,不明確用戶輸入幾次可以猜正確.
                無限循環.
                
                while(true){
                    
                }

能夠使用Random生成隨機數

1.導入包: import java.util.Random;
2.創建對象: Random r = new Random();
3.調用功能,產生隨機數: int num=r.nextInt(101);
        101:產生的範圍就是0-100
        需求:產生的是1-100
            int num = r.nextInt(100) + 1;
        
        需求:產生的隨機數是45-50
            int num = r.nextInt(6) + 45;
​

能夠使用Random完成數字案例

 

import java.util.Scanner;
import java.util.Random;

public class Demo{
    public static void main(String[] args){
        Random r = new Random();
        //1.產生一個1-100的隨機數
        int randomNUm = r.nextInt(100) + 1;
        
        //2.鍵盤接受用戶猜測的數據
        Scanner sc = new Scanner(System.in);
        
        while (true){
            System.out.println("請輸入:");
            int num = sc.nextInt();
            
            //3.判斷是否猜對了
            if (num > randomNum){
                System.out.println("大了");
            }else if (num < randomNum){
                System.out.println("小了");
            }else{
                System.out.println("中了");
                break;
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章