Java基礎之選擇語句--switch

Java基礎之選擇語句--switch

 

switch語句格式:
switch(表達式) {
           case 常量值1:
               語句體1;
               break;
           case 常量值2:
              語句體2;
              break;
              ...
          default:
             語句體n+1;
             break;
}

 

執行流程
o  首先計算出表達式的值
o  其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
o  最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。
要求這個表達式最後必須能計算出一個準確的結果,並且這個結果的類型只能是 byte short intchar  enum(枚舉), 在JDK7以後增加了字符串類型。
break的作用是結束switch語句,跳出switch語句。

 

switch語句練習-春夏秋冬
o  需求:一年有12個月,分屬於春夏秋冬4個季節,鍵盤錄入一個月份,請用程序實現判斷該月份屬於哪個季節,並輸出。
o  演示效果
輸入: 1212 輸出:冬季
輸入: 34輸出:春季
輸入: 67輸出:夏季
輸入: 91011 輸出:秋季
輸入:其它數字 輸出:數字有誤

 

public static void main(String[] args) {
   //定義月份變量,判斷季節
   Scanner sc = new Scanner(System.in);
   System.out.println("請輸入月份:");
   int month = sc.nextInt();//6

 

   //switch語句實現選擇
   switch(month) {
       case 1:
           System.out.println("冬季");
           break;
       case 2:
           System.out.println("冬季");
           break;
       case 3:
           System.out.println("春季");
           break;
       case 4:
           System.out.println("春季");
           break;
       case 5:
           System.out.println("春季");
           break;
       case 6:
           System.out.println("夏季");
           break;
       case 7:
           System.out.println("夏季");
           break;
       case 8:
           System.out.println("夏季");
           break;
       case 9:
           System.out.println("秋季");
           break;
       case 10:
           System.out.println("秋季");
           break;
       case 11:
           System.out.println("秋季");
           break;
       case 12:
           System.out.println("冬季");
           break;
       default:
           System.out.println("你輸入的月份數字有誤");
           break;
    }
}

case的穿透性

switch語句中,如果case的後面不寫break,將出現穿透現象,也就是不會在判斷下一個case的值,直接向後運行,直到遇到break,或者整體switch結束。


public static void main(String[] args) {
    
//定義月份變量,判斷季節
    Scanner sc = new Scanner(System.in);
    
System.out.println("請輸入月份:");
    
int month = sc.nextInt();//3
    //switch語句實現選擇
    switch(month) {
        
case 12:
        
case 1:
        
case 2:
            
System.out.println("冬季");
            
break;
        
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;
        
default:
            
System.out.println("你輸入的月份數字有誤");
            
break;
    }
}

上述程序中,執行case3後,由於沒有break語句,程序會一直向後走,不會在判斷case,直接向下運行,直到遇到break關鍵字,纔會結束switch語句。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章