更新時(shí)間:2020-11-16 17:34:20 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1879次
我們其實(shí)在很早就已經(jīng)學(xué)習(xí)了if語(yǔ)句,然而,我們會(huì)發(fā)現(xiàn)if語(yǔ)句在多重嵌套下,會(huì)顯得非常凌亂,代碼的可讀性非常差,所以就有了取而代之的switch語(yǔ)句,它和if語(yǔ)句能實(shí)現(xiàn)相同的功能,只不過(guò)在多重判斷下,運(yùn)用switch-case語(yǔ)句會(huì)使代碼更加的簡(jiǎn)潔。本文我們就來(lái)探究switch-case 語(yǔ)句用法。
switch-case 語(yǔ)句實(shí)際上與 if 語(yǔ)句是相似的,它是根據(jù)語(yǔ)句變量或表達(dá)式的值不同分別執(zhí)行不同命令的條件語(yǔ)句,其基本調(diào)用格式如下:
switch 表達(dá)式
case 值 1
表達(dá)式 1
case 值 2
表達(dá)式 2
case 值 3
表達(dá)式 3
…
otherwise
表達(dá)式 n
end
運(yùn)行 switch-case 語(yǔ)句時(shí),首先計(jì)算表達(dá)式的值,然后比較計(jì)算結(jié)果與 case 語(yǔ)句中的值。若計(jì)算結(jié)果與 case 語(yǔ)句中的某一個(gè)值相對(duì)應(yīng),則執(zhí)行對(duì)應(yīng)的語(yǔ)句;若都不滿足 case 語(yǔ)句中的值,那么將執(zhí)行 otherwise 語(yǔ)句的表達(dá)式。
當(dāng)switch后面括號(hào)內(nèi)“表達(dá)式”的值與某個(gè)case后面的“常量表達(dá)式”的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句。執(zhí)行完一個(gè)case后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行。如果你只想執(zhí)行這一個(gè)case語(yǔ)句,不想執(zhí)行其他case,那么就需要在這個(gè)case語(yǔ)句后面加上break,跳出switch語(yǔ)句。正常我們都希望只執(zhí)行一個(gè)符合條件的case語(yǔ)句,所以一般后面都會(huì)加上break,以便執(zhí)行完成后,直接跳出switch語(yǔ)句。
下面我們來(lái)看一個(gè) switch-case 語(yǔ)句的實(shí)例:
public class Test7
{
public static void main(String[] args)
{
int i=5;
switch(i)
{
case 1:
System.out.println("one");
case 10:
System.out.println("ten");
case 5:
System.out.println("five");
case 3:
System.out.println("three");
default:
System.out.println("other");
}
}
}
è 結(jié)果是:
five
three
other
switch(表達(dá)式)
{
case 常量表達(dá)式1:語(yǔ)句1;
....
case 常量表達(dá)式2:語(yǔ)句2;
default:語(yǔ)句;
}
switch的用法是判斷case后面的表達(dá)式和switch后面的表達(dá)式是否相匹配,一旦case匹配,就會(huì)順序執(zhí)行后面的程序代碼,而不管后面的case是否匹配,直到遇見(jiàn)break。
如上所給的代碼中,由于i等于5,和前面的兩個(gè)case都不匹配,所以結(jié)果中并沒(méi)有one和ten的。而第三個(gè)case中的5就和switch中i的值匹配,因此就會(huì)打印出five的,由于沒(méi)有遇到break所以就會(huì)順序執(zhí)行很面的代碼,打印出three和other
流程控制中的switch-case語(yǔ)句,一直 switch-case 語(yǔ)句的重點(diǎn)內(nèi)容,首先從原理上來(lái)闡述這個(gè)問(wèn)題:
switch(表達(dá)式)
{ case 常量表達(dá)式1:語(yǔ)句1;
....
case 常量表達(dá)式2:語(yǔ)句2;
default:語(yǔ)句;
}
default就是如果沒(méi)有符合的case就執(zhí)行它,default并不是必須的。
2.case后的語(yǔ)句可以不用大括號(hào). case 后面必須是常量表達(dá)式constant expressions, 錯(cuò)誤表示如: case x 。
3.switch語(yǔ)句的判斷條件可以接受int,byte,char,short, enum不能接受其他類型。
4.一旦case匹配,就會(huì)順序執(zhí)行后面的程序代碼,而不管后面的case是否匹配,直到遇見(jiàn)break,利用這一特性可以讓好幾個(gè)case執(zhí)行統(tǒng)一語(yǔ)句。
標(biāo)準(zhǔn)型(case后面都有break語(yǔ)句):
int i=3;
switch(i)
{
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default:
System.out.println("default");
break;
}
輸出結(jié)果:3
以上就是對(duì) switch-case 語(yǔ)句用法的深入探究,我們通過(guò)對(duì)幾個(gè)實(shí)例的分析,很容易得出 switch-case 語(yǔ)句基本用法。但是,有些奧妙之處還是需要我們透過(guò)例子,耐心去體會(huì)。本站的Java SE教程中有對(duì)大多數(shù)Java控制語(yǔ)句用法的實(shí)例分析,想深入學(xué)習(xí)提升自己的小伙伴可以去觀看學(xué)習(xí)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743