Switch case分支結構
語法格式如下:
switch(表達式){
case value : //操作
break; //可選,執行到break就會跳出switch case
case value : //操作
break; //可選 ,執行到break就會跳出switch case
//你可以寫任意數量的case語句
default : //可選,default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。
}
- case 語句中的值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。
當變量的值與 case 語句的值相等時,那麼 case 語句之後的語句開始執行,直到 break 語句出現纔會跳出 switch 語句。 - 當遇到 break 語句時,switch 語句終止。程序跳轉到 switch 語句後面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程序會繼續執行下一條 case 語句,直到出現 break 語句。
- 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 交流學習。
乾坤未定,你我皆是黑馬