<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:
自Java13以來,Switch表示式被新增到Java核心庫中。如果您使用的是Java版本13或更高版本,那麼您肯定可以將舊Switch轉換為新Switch。
本文將討論它如何在不破壞現有更改的情況下提供某些功能。當然,其他語言使用者可能會評論“多年前,它就已經存在於我們的程式語言中了”。但讓我們微笑一下,繼續用Java程式設計,好嗎?注意,我將在貼文中交替使用“switch expression”和“switch statement”,所以請記住,我想說的是同一件事。
switch語句將以更可讀、更簡潔的方式(並非每次)替換單個變數的if-else-if梯形圖。是的,我知道,這不是一個精確的定義。
讓我們看一個實際的例子。假設你按下了一個按鈕,並且有了特定的按鈕程式碼,你需要有一些與之相關的命令。現在,您可以執行第一塊中顯示的if-else-if梯形圖,或者將其轉換為第二塊中顯示的開關表示式:
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表示式:
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"); }
正如你所見,這個switch即使我們減少了條件檢查,我們也必須新增很多額外的程式碼,比如break語句。這就是新的Java Switch語句或表示式幫助我們的地方。與其說是一個新的,不如說是一個“更新的開關表示式”。但無論如何,讓我們看看。
在新的switch語句中,您將看到的第一件事是,您根本不必編寫break
語句。要做到這一點,你必須使用箭頭->
,我們在lambda中使用的箭頭,來告訴這個案例的開始。至於實際的程式碼塊,可以將其設定為一行表示式,也可以在程式碼塊周圍使用一個花括號。
此外,對於不同case的相同評估,您不需要多次編寫case語句,您可以用逗號分隔它們(例如,上例中的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"); }
看看程式碼變得多麼簡潔。不需要額外的中斷宣告。此外,可以在不重複關鍵字的情況下組合案例。但等等,不是這樣的。關於這個更新的Java switch語句,還有一件事。
我們可以從switch語句中得到一個結果。簡單地說,您只能從開關塊返回特定的內容。它對switch語句使用Java13新新增的yield
關鍵字。這只不過是對開關的回報。舉個例子你會更好地理解。
假設在上面的例子中,我們為每種情況都修改了命令變數。現在,我們可以直接從特定情況返回特定字串,並將其分配給命令,而不是對同一變數進行變異。你可以同時使用“冒號大小寫”或“箭頭大小寫”。讓我們看看如何。
箭頭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"); };
冒號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時請記住這幾點:
break
關鍵字。yield
時使用箭頭框。java的switch語句或表示式不如Kotlin或Scala的switch表示式強大,但我認為我們可以看到它在不久的將來在Java中變得更加強大。在那之前,讓我們試著在程式碼中使用這個東西。
到此這篇關於Java 不同版本的 Switch語句的文章就介紹到這了,更多相關Java Switch語句內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45