java中的switch case語(yǔ)句使用詳解
java中的switch case語(yǔ)句
switch-case語(yǔ)句格式如下:
switch(變量){
case 變量值1:
//;
break;
case 變量值2:
//...;
break;
...
case default:
//...;
break;
}
swtich()變量類型只能是int、short、char、byte和enum類型(JDK 1.7 之后,類型也可以是String了)。當(dāng)進(jìn)行case判斷時(shí),JVM會(huì)自動(dòng)從上到小掃描,尋找匹配的case,可能存在以下情況:
情況一:若未找到,則執(zhí)行默認(rèn)的case。
int i = 5;
switch(i){
case 0:
System.out.println("0");break;
case 1:
System.out.println("1");break;
case 2:
System.out.println("2");break;
default:
System.out.println("default");break;
}
輸出:default
情況二:當(dāng)每一個(gè)case都不存在break時(shí),JVM并不會(huì)順序輸出每一個(gè)case對(duì)應(yīng)的返回值,而是繼續(xù)匹配,匹配不成功則返回默認(rèn)case。
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");
}
輸出:default
情況三:當(dāng)每一個(gè)case都不存在break時(shí),匹配成功后,從當(dāng)前case開(kāi)始,依次返回后續(xù)所有case的返回值。
int i = 2;
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");
}
輸出:2
default
情況四:若當(dāng)前匹配成功的case不存在break,則從當(dāng)前case開(kāi)始,依次返回后續(xù)case的返回值,直到遇到break,跳出判斷。
int i = 2;
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");
}
輸出:2
3
因此switch case執(zhí)行時(shí),一定會(huì)先進(jìn)行匹配,匹配成功返回當(dāng)前case的值,再根據(jù)是否有break,判斷是否繼續(xù)輸出,或是跳出判斷。
還需注意的是case后面只能是常量,可以是運(yùn)算表達(dá)式,但一定要符合正確的類型。不能是變量,即便變量在之前進(jìn)行了賦值,JVM依然會(huì)報(bào)錯(cuò)。
到此這篇關(guān)于java中的switch case語(yǔ)句使用詳解的文章就介紹到這了,更多相關(guān)java中的switch case語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot2.x 整合 thumbnailator 圖片處理的示例代碼
這篇文章主要介紹了SpringBoot2.x 之整合 thumbnailator 圖片處理,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
java集成開(kāi)發(fā)SpringBoot生成接口文檔示例實(shí)現(xiàn)
這篇文章主要為大家介紹了java集成開(kāi)發(fā)SpringBoot如何生成接口文檔的示例實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
劍指Offer之Java算法習(xí)題精講數(shù)組與字符串
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03
spring-security關(guān)閉登錄框的實(shí)現(xiàn)示例
這篇文章主要介紹了spring-security關(guān)閉登錄框的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
java圖論弗洛伊德和迪杰斯特拉算法解決最短路徑問(wèn)題
這篇文章主要為大家介紹了java圖論弗洛伊德算法和迪杰斯特拉算法解決最短路徑的問(wèn)題示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Spring Boot中使用RabbitMQ 生產(chǎn)消息和消費(fèi)消息的實(shí)例代碼
本文介紹了在SpringBoot中如何使用RabbitMQ進(jìn)行消息的生產(chǎn)和消費(fèi),詳細(xì)闡述了RabbitMQ中交換機(jī)的作用和類型,包括直連交換機(jī)、主題交換機(jī)、扇出交換機(jī)和頭交換機(jī),并解釋了各自的消息路由機(jī)制,感興趣的朋友一起看看吧2024-10-10
SpringBoot?整合?EasyExcel?實(shí)現(xiàn)自由導(dǎo)入導(dǎo)出功能
在實(shí)際的業(yè)務(wù)系統(tǒng)開(kāi)發(fā)過(guò)程中,操作 Excel 實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入導(dǎo)出基本上是個(gè)非常常見(jiàn)的需求,這篇文章主要介紹了SpringBoot?整合?EasyExcel?實(shí)現(xiàn)自由導(dǎo)入導(dǎo)出功能,需要的朋友可以參考下2024-06-06

