總共有四種不同形式的switch。兩種是switch語(yǔ)句,兩種是switch表達(dá)式,表達(dá)式會(huì)生成一個(gè)值。switch表達(dá)式?jīng)]有“直通式”行為。
表達(dá)式,無(wú)直通行為
int numLetters
numLetters = switch(seasonName){
case "Spring" ->{
System.out.println("spring time");
yield 6;
}
case "Summer","Winter" -> 6;
case "Fall" -> 4;
default -> -1;
}
語(yǔ)句,無(wú)直通行為
switch(seasonName){
case "Spring" -> {
System.out.println("spring time");
numLetters = 6;
}
case "Summer","Winter" -> numLetters = 6;
case "Fall" -> numLetters = 4;
default -> numLetters = -1;
}
表達(dá)式,有直通行為(Java 14引入)
int numLetters
numLetters = switch(seasonName){
case "Spring":
System.out.println("spring time");
case "Summer","Winter":
yield 6;
case "Fall":
yield 4;
default:
yield -1;
}
語(yǔ)句,有直通行為(“經(jīng)典”形式)
switch(seasonName){
case "Spring":
System.out.println("spring time");
case "Summer","Winter":
numLetters = 6;
break;
case "Fall":
numLetters = 4;
break;
default:
numLetters = -1;
}
注意
1.switch()括號(hào)內(nèi)seasonName,應(yīng)與case后常量類型保持一致,或者是可以自動(dòng)轉(zhuǎn)換成可以互相比較的類型。
2.case標(biāo)簽可以是:類型為char、byte、short或int的常量表達(dá)式;枚舉常量enum;字符串字面量String;多個(gè)字符串用逗號(hào)分隔。
3.case子句中的值必須是常量,不能是變量。
4.在語(yǔ)句中,default是可選的。
5.break和yield語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后使程序跳出switch語(yǔ)句,如果沒有break或yield,程序會(huì)順序執(zhí)行到switch結(jié)尾,產(chǎn)生直通行為。
6.不能在一個(gè)switch語(yǔ)句中混合使用冒號(hào)和箭頭。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-558847.html
7.與break語(yǔ)句類似,yield會(huì)終止執(zhí)行。但與break不同的是,yield還會(huì)生成一個(gè)值,這就是表達(dá)式的值。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-558847.html
到了這里,關(guān)于Java中switch的四種用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!