最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?不同版本的?Switch語句

 更新時間:2022年06月09日 17:07:59   作者:?sofia??  
本文主要介紹了Java不同版本的Switch語句,自Java13以來,Switch表達式就被添加到Java核心庫中,下面我們將介紹舊的Java?Switch語句和新的Switch語句的區(qū)別,需要的朋友可以參考一下

前言:

自Java13以來,Switch表達式被添加到Java核心庫中。如果您使用的是Java版本13或更高版本,那么您肯定可以將舊Switch轉換為新Switch。

本文將討論它如何在不破壞現有更改的情況下提供某些功能。當然,其他語言用戶可能會評論“多年前,它就已經存在于我們的編程語言中了”。但讓我們微笑一下,繼續(xù)用Java編程,好嗎?注意,我將在帖子中交替使用“switch expression”和“switch statement”,所以請記住,我想說的是同一件事。

舊的Java Switch語句

switch語句將以更可讀、更簡潔的方式(并非每次)替換單個變量的if-else-if梯形圖。是的,我知道,這不是一個精確的定義。

讓我們看一個實際的例子。假設你按下了一個按鈕,并且有了特定的按鈕代碼,你需要有一些與之相關的命令?,F在,您可以執(zhí)行第一塊中顯示的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語句

在新的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語句,還有一件事。

Java Switch表達式的收益率

我們可以從switch語句中得到一個結果。簡單地說,您只能從開關塊返回特定的內容。它對switch語句使用Java13新添加的yield關鍵字。這只不過是對開關的回報。舉個例子你會更好地理解。

假設在上面的例子中,我們?yōu)槊糠N情況都修改了命令變量?,F在,我們可以直接從特定情況返回特定字符串,并將其分配給命令,而不是對同一變量進行變異。你可以同時使用“冒號大小寫”或“箭頭大小寫”。讓我們看看如何。

箭頭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時請記住這幾點:

  • 不能在一個switch語句中交替使用冒號和箭頭大小寫。
  • 從箭頭框中得出結果時,必須將其寫在花括號中。
  • 從冒號case中生成結果時,不要使用break關鍵字。
  • 建議在使用yield時使用箭頭框。

結論

java的switch語句或表達式不如Kotlin或Scala的switch表達式強大,但我認為我們可以看到它在不久的將來在Java中變得更加強大。在那之前,讓我們試著在代碼中使用這個東西。

到此這篇關于Java 不同版本的 Switch語句的文章就介紹到這了,更多相關Java Switch語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中Long類型傳入前端數值出錯問題

    Java中Long類型傳入前端數值出錯問題

    這篇文章主要介紹了Java中Long類型傳入前端數值出錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 基于hibernate實現的分頁技術實例分析

    基于hibernate實現的分頁技術實例分析

    這篇文章主要介紹了基于hibernate實現的分頁技術,結合實例形式分析了Hibernate分頁技術的原理,實現步驟與相關實現技巧,需要的朋友可以參考下
    2016-03-03
  • SpringMVC表單提交參數400錯誤解決方案

    SpringMVC表單提交參數400錯誤解決方案

    這篇文章主要介紹了SpringMVC表單提交參數400錯誤解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 關于mybatis plus 中的查詢優(yōu)化問題

    關于mybatis plus 中的查詢優(yōu)化問題

    這篇文章主要介紹了關于mybatis plus 中的查詢優(yōu)化問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • MVC框架自定義實現過程

    MVC框架自定義實現過程

    這篇文章主要介紹了MVC框架自定義實現過程,通過搞懂什么是MVC以及MVC的運行原理然后再去理解其演繹過程,本文附含了詳細的思維導圖幫助大家更好的理解MVC
    2021-08-08
  • 新手初學Java流程控制

    新手初學Java流程控制

    這篇文章主要介紹了JAVA流程控制語句的的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下,希望可以幫到你
    2021-07-07
  • Spring?Boot整合Kafka+SSE實現實時數據展示

    Spring?Boot整合Kafka+SSE實現實時數據展示

    本文主要介紹了Spring?Boot整合Kafka+SSE實現實時數據展示
    2024-06-06
  • springboot的控制反轉和自動裝配示例代碼

    springboot的控制反轉和自動裝配示例代碼

    這篇文章主要介紹了springboot的控制反轉和自動裝配的相關知識,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 文件上傳SpringBoot后端MultipartFile參數報空問題的解決辦法

    文件上傳SpringBoot后端MultipartFile參數報空問題的解決辦法

    這篇文章主要介紹了文件上傳SpringBoot后端MultipartFile參數報空問題的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • springmvc攔截器登錄驗證示例

    springmvc攔截器登錄驗證示例

    本篇文章主要介紹了springmvc攔截器登錄驗證示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論

西青区| 偏关县| 叶城县| 扶余县| 茌平县| 巴塘县| 潞西市| 清水县| 九台市| 砀山县| 南和县| 祁连县| 沂水县| 奎屯市| 长子县| 安康市| 余干县| 桓台县| 博野县| 沁阳市| 六安市| 柳州市| 丰台区| 陆川县| 溧水县| 绵竹市| 桐庐县| 万盛区| 洛扎县| 香格里拉县| 金塔县| 苏尼特右旗| 左贡县| 凌云县| 海丰县| 巴东县| 清新县| 萍乡市| 承德市| 沙湾县| 葫芦岛市|