新聞中心
Switch分支語(yǔ)句,主要提供一個(gè)選擇功能,現(xiàn)在學(xué)習(xí)的比較初級(jí),可以將其與if語(yǔ)句進(jìn)行區(qū)分,if語(yǔ)句可以進(jìn)行選擇的比較簡(jiǎn)單只是單純的進(jìn)行真假的劃分,即布爾類型的使用,而switch語(yǔ)句使用類型就比較寬泛了,包括byte、short、int、char、string、枚舉等。

一、switch語(yǔ)法
switch語(yǔ)句的語(yǔ)法如下:
switch(expr){
case condition1{
//代碼塊...
break;
}
case condition2{
//代碼塊...
break;
}
...
case conditionN{
//代碼塊...
break;
}
dafault:{
//代碼塊...
}
}
這種分支語(yǔ)句的執(zhí)行是先對(duì)expr求值,然后依次匹配每個(gè)case標(biāo)簽后的condition值,遇到匹配的值即執(zhí)行對(duì)應(yīng)的代碼塊,如果condition的值沒(méi)有與expr表達(dá)式的值相等,則執(zhí)行default標(biāo)簽后的代碼塊。
二、switch語(yǔ)句和if語(yǔ)句的區(qū)別
switch語(yǔ)句和if語(yǔ)句都可用于分支條件的選擇,但switch后面的控制表達(dá)式只能是byte、short、char、int、String和枚舉類型,不能是boolean類型,if后面的控制表達(dá)式是boolean類型;switch語(yǔ)句中各個(gè)case標(biāo)簽后代碼塊的開(kāi)始點(diǎn)和結(jié)束點(diǎn)非常清晰,因此完全可以省略case后代碼塊的花括號(hào)。
三、switch的使用及注意事項(xiàng)
為了更清晰的認(rèn)識(shí)switch,下面通過(guò)一段程序來(lái)示范switch的用法:
public class TestSwitch {
public static void main(String[] args) {
//聲明變量languageType
String languageType = "Java";
//執(zhí)行switch語(yǔ)句
switch (languageType) {
case "C":
System.out.println("C語(yǔ)言");
break;
case "Java":
System.out.println("Java語(yǔ)言");
break;
case "C++":
System.out.println("C++語(yǔ)言");
break;
case "Python":
System.out.println("Python語(yǔ)言");
break;
default:
System.out.println("語(yǔ)言類型輸入錯(cuò)誤");
}
}
}
運(yùn)行上面的程序輸出:Java語(yǔ)言。
因?yàn)槎x的變量(switch后面的控制表達(dá)式)”languageType” 與”Java”匹配。
如果把上面程序中的每個(gè)case標(biāo)簽里的break語(yǔ)句去掉,將會(huì)發(fā)生什么樣的結(jié)果呢?那么我先把每個(gè)break語(yǔ)句注釋掉,運(yùn)行結(jié)果如下:
Java語(yǔ)言 C++語(yǔ)言 Python語(yǔ)言 語(yǔ)言類型輸入錯(cuò)誤
輸出結(jié)果是不是很奇怪!這正是switch語(yǔ)句的運(yùn)行流程決定的,只要進(jìn)入switch語(yǔ)句的入口,程序會(huì)一直運(yùn)行下去,直到遇到break語(yǔ)句,如果省略了break語(yǔ)句,那么匹配case值后的所有情況(包括default)都會(huì)被執(zhí)行。
所以,使用switch語(yǔ)句時(shí),有兩個(gè)值得注意的地方:
1)switch后面的控制表達(dá)式只能是byte、short、char、int、String和枚舉類型;
2)如果省略了case后的代碼塊break,將會(huì)引入一個(gè)陷阱。
網(wǎng)站標(biāo)題:JavaSwitch分支語(yǔ)句
本文URL:http://www.5511xx.com/article/cojoesj.html


咨詢
建站咨詢
