您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java不同版本的Switch語(yǔ)句實(shí)例分析”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Java不同版本的Switch語(yǔ)句實(shí)例分析”吧!
switch語(yǔ)句將以更可讀、更簡(jiǎn)潔的方式(并非每次)替換單個(gè)變量的if-else-if梯形圖。是的,我知道,這不是一個(gè)精確的定義。
讓我們看一個(gè)實(shí)際的例子。假設(shè)你按下了一個(gè)按鈕,并且有了特定的按鈕代碼,你需要有一些與之相關(guān)的命令?,F(xiàn)在,您可以執(zhí)行第一塊中顯示的if-else-if梯形圖,或者將其轉(zhuǎn)換為第二塊中顯示的開(kāi)關(guān)表達(dá)式:
if(button == 1) { command = "on"; } else if(button == 2){ command = "off"; } else if(button == 3 || button == 4) { command = "ring"; } else{ throw new RuntimeException("Wrong Button Code"); }
switch表達(dá)式:
switch(button){ case 1: command = "On"; break; case 2: command = "off"; break; case 3: case 4: command = "ring"; break; default: throw new RuntimeException("Wrong Button Code"); }
正如你所見(jiàn),這個(gè)switch即使我們減少了條件檢查,我們也必須添加很多額外的代碼,比如break語(yǔ)句。這就是新的Java Switch語(yǔ)句或表達(dá)式幫助我們的地方。與其說(shuō)是一個(gè)新的,不如說(shuō)是一個(gè)“更新的開(kāi)關(guān)表達(dá)式”。但無(wú)論如何,讓我們看看。
在新的switch語(yǔ)句中,您將看到的第一件事是,您根本不必編寫(xiě)break
語(yǔ)句。要做到這一點(diǎn),你必須使用箭頭->
,我們?cè)趌ambda中使用的箭頭,來(lái)告訴這個(gè)案例的開(kāi)始。至于實(shí)際的代碼塊,可以將其設(shè)置為一行表達(dá)式,也可以在代碼塊周?chē)褂靡粋€(gè)花括號(hào)。
此外,對(duì)于不同case的相同評(píng)估,您不需要多次編寫(xiě)case語(yǔ)句,您可以用逗號(hào)分隔它們(例如,上例中的case3和case4)。
switch(button){ case 1 -> command = "on"; // on liner case 2 -> { // do something command = "off"; // a block with curly brackets } case 3, 4 -> command = "ring"; // case can be combined with a comma default -> throw new RuntimeException("Wrong Button Code"); }
看看代碼變得多么簡(jiǎn)潔。不需要額外的中斷聲明。此外,可以在不重復(fù)關(guān)鍵字的情況下組合案例。但等等,不是這樣的。關(guān)于這個(gè)更新的Java switch語(yǔ)句,還有一件事。
我們可以從switch語(yǔ)句中得到一個(gè)結(jié)果。簡(jiǎn)單地說(shuō),您只能從開(kāi)關(guān)塊返回特定的內(nèi)容。它對(duì)switch語(yǔ)句使用Java13新添加的yield
關(guān)鍵字。這只不過(guò)是對(duì)開(kāi)關(guān)的回報(bào)。舉個(gè)例子你會(huì)更好地理解。
假設(shè)在上面的例子中,我們?yōu)槊糠N情況都修改了命令變量?,F(xiàn)在,我們可以直接從特定情況返回特定字符串,并將其分配給命令,而不是對(duì)同一變量進(jìn)行變異。你可以同時(shí)使用“冒號(hào)大小寫(xiě)”或“箭頭大小寫(xiě)”。讓我們看看如何。
箭頭case ->
String command = switch(button){ case 1 -> { yield "on"; } case 2 -> { yield "off"; } case 3,4 -> { // multiple case yield "ring"; } default -> throw new RuntimeException("Wrong Button Code"); };
冒號(hào)case:
String command = switch(button){ case 1: yield "on"; // no break should be used case 2: yield "off"; case 3: case 4: yield "ring"; default: throw new RuntimeException("Wrong Button Code"); };
使用switch時(shí)請(qǐng)記住這幾點(diǎn):
不能在一個(gè)switch語(yǔ)句中交替使用冒號(hào)和箭頭大小寫(xiě)。
從箭頭框中得出結(jié)果時(shí),必須將其寫(xiě)在花括號(hào)中。
從冒號(hào)case中生成結(jié)果時(shí),不要使用break
關(guān)鍵字。
建議在使用yield
時(shí)使用箭頭框。
感謝各位的閱讀,以上就是“Java不同版本的Switch語(yǔ)句實(shí)例分析”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Java不同版本的Switch語(yǔ)句實(shí)例分析這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。