您好,登錄后才能下訂單哦!
1.概述
switch case
語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
switch case 語句語法格式如下:
switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//你可以有任意數(shù)量的case語句
default : //可選
//語句
}
switch case
語句有如下規(guī)則:
switch
語句中的變量類型可以是: byte
、short
、int
或者 char
。從 Java SE 7 開始,switch
支持字符串 String
類型了,同時 case
標(biāo)簽必須為字符串常量或字面量。switch
語句可以擁有多個 case
語句。每個 case
后面跟一個要比較的值和冒號。case
語句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。case
語句的值相等時,那么 case
語句之后的語句開始執(zhí)行,直到 break
語句出現(xiàn)才會跳出 switch
語句。break
語句時,switch
語句終止。程序跳轉(zhuǎn)到 switch
語句后面的語句執(zhí)行。case
語句不必須要包含 break
語句。如果沒有 break
語句出現(xiàn),程序會繼續(xù)執(zhí)行下一條 case
語句,直到出現(xiàn) break
語句。switch
語句可以包含一個 default
分支,該分支一般是 switch
語句的最后一個分支(可以在任何位置,但建議在最后一個)。default
在沒有 case
語句的值和變量值相等的時候執(zhí)行。default
分支不需要 break
語句。
switch case
執(zhí)行時,一定會先進(jìn)行匹配,匹配成功返回當(dāng)前case
的值,再根據(jù)是否有break
,判斷是否繼續(xù)輸出,或是跳出判斷。
public class Test {
public static void main(String[] args){
//char grade = args[0].charAt(0);
char grade = 'C';
switch(grade)
{
case 'A' :
System.out.println("優(yōu)秀");
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);
}
}
以上代碼編譯運行結(jié)果如下:
良好
你的等級是 C
如果 case
語句塊中沒有 break
語句時,JVM 并不會順序輸出每一個 case
對應(yīng)的返回值,而是繼續(xù)匹配,匹配不成功則返回默認(rèn) case
。
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");
}
}
}
以上代碼編譯運行結(jié)果如下:
default
如果 case
語句塊中沒有 break
語句時,匹配成功后,從當(dāng)前 case
開始,后續(xù)所有 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");
}
}
}
以上代碼編譯運行結(jié)果如下:
1
2
default
如果當(dāng)前匹配成功的 case
語句塊沒有 break
語句,則從當(dāng)前 case
開始,后續(xù)所有 case
的值都會輸出,如果后續(xù)的 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");
}
}
}
以上代碼編譯運行結(jié)果如下:
1
2
3
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。