JAVA基礎篇(10):分支控制結構之---Switch Case分支結構

Switch case分支結構

語法格式如下:

switch(表達式){ 
case value : //操作 
break; //可選,執行到break就會跳出switch case
case value : //操作 
break; //可選 ,執行到break就會跳出switch case
//你可以寫任意數量的case語句 
default : //可選,default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。
}
  1. case 語句中的值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。
    當變量的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現纔會跳出 switch 語句。
  2. 當遇到 break 語句時,switch 語句終止。程序跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程序會繼續執行下一條 case 語句,直到出現 break 語句。
  3. switch 語句可以包含一個 default 分支,該分支一般是 switch 語句的最後一個分支(可以在任何位置,但建議在最後一個)。default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。

代碼舉例如下:

public class Test {
	   public static void main(String args[]){
	      char grade = 'C';
	 
	      switch(grade)
	      {
	         case 'A' :
	            System.out.println("優秀"); 
	            break;
	         case 'B' :
	         case 'C' :
	            System.out.println("良好");
	            break;
	         case 'D' :
	            System.out.println("及格");
	            break;
	         case 'F' :
	            System.out.println("你需要再努力努力");
	            break;
	         default :
	            System.out.println("未知等級");
	      }
	      System.out.println("你的等級是 " + grade);
	   }
	}

以上代碼編譯運行結果如下:

良好
你的等級是 C

如果grade=’B’,則會執行case B和case C,並輸出如下內容(這種現象叫case穿透):

良好
你的等級是 B

如果 case 語句塊中沒有 break 語句,JVM 並不會順序輸出每一個 case 對應的返回值,而是繼續匹配,匹配不成功則返回默認 case也就是default。

public class Test {
	   public static void main(String args[]){
	      int i = 5;
	      switch(i){
	         case 0:
	            System.out.println("0");
	         case 1:
	            System.out.println("1");
	         case 2:
	            System.out.println("2");
	         default:
	            System.out.println("default");
	      }
	   }
	}

以上代碼編譯運行結果如下:

default

如果 case 語句塊中沒有 break 語句時,匹配成功後,從當前 case 開始,後續所有 case 的值都會輸出。

public class Test {
	   public static void main(String args[]){
	      int i = 1;
	      switch(i){
	         case 0:
	            System.out.println("0");
	         case 1:
	            System.out.println("1");
	         case 2:
	            System.out.println("2");
	         default:
	            System.out.println("default");
	      }
	   }
	}

以上代碼編譯運行結果如下:

1
2
default

如果當前匹配成功的 case 語句塊沒有 break 語句,則從當前 case 開始,後續所有 case 的值都會輸出,如果後續的 case 語句塊有 break 語句則會跳出判斷。

public class Test {
	   public static void main(String args[]){
	      int i = 1;
	      switch(i){
	         case 0:
	            System.out.println("0");
	         case 1:
	            System.out.println("1");
	         case 2:
	            System.out.println("2");
	         case 3:
	            System.out.println("3"); break;
	         default:
	            System.out.println("default");
	      }
	   }
	}

以上代碼編譯運行結果如下:

1
2
3

上一篇:JAVA基礎篇(09):分支控制結構之—if分支結構
下一篇:


軟件測試工程師一隻,也在不斷的學習階段,平時的小經驗不定期分享。
博主經驗有限,若有不足,歡迎交流,共同改進~
有意可加Q羣 908417285 交流學習。
乾坤未定,你我皆是黑馬
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章