在Java中,switch
和case
語句用于進(jìn)行多條件分支判斷
switch
表達(dá)式的類型必須是byte
、short
、int
、char
、String
或者它們的包裝類(如Byte
、Short
、Integer
、Character
、String
)。從Java 7開始,switch
表達(dá)式還可以是枚舉類型。case
標(biāo)簽的值必須是常量或字面量,并且在編譯時(shí)期就能確定。這意味著你不能使用變量或方法返回值作為case
標(biāo)簽的值。此外,每個(gè)case
標(biāo)簽的值必須在同一個(gè)switch
語句中是唯一的。switch
表達(dá)式的值與某個(gè)case
標(biāo)簽的值相等時(shí),程序會(huì)從該case
標(biāo)簽處開始執(zhí)行,直到遇到break
語句或者switch
語句結(jié)束。如果沒有匹配到任何case
標(biāo)簽,程序會(huì)執(zhí)行default
分支(如果存在)。case
分支中沒有break
語句,那么程序會(huì)繼續(xù)執(zhí)行下一個(gè)case
分支,這被稱為“穿透”(fall-through)。為了避免穿透現(xiàn)象,建議在每個(gè)case
分支的末尾添加break
語句。default
分支來處理未匹配到任何case
標(biāo)簽的情況。default
分支是可選的,但建議在實(shí)際編程中使用,以提高代碼的健壯性。示例:
int number = 2;
switch (number) {
case 1:
System.out.println("Number is 1");
break;
case 2:
System.out.println("Number is 2");
break;
case 3:
System.out.println("Number is 3");
break;
default:
System.out.println("Number is not 1, 2 or 3");
}
輸出結(jié)果:
Number is 2