亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java switch使用原理及實(shí)例解析

 更新時(shí)間:2020年02月06日 12:41:38   作者:西紅柿里沒(méi)有番茄  
這篇文章主要介紹了Java switch使用及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Java switch使用及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

java中有兩個(gè)經(jīng)常用于條件判斷的方法,一個(gè)是if{}else{},另一個(gè)就是switch()了??偟膩?lái)說(shuō)因?yàn)閟witch可以直接一對(duì)一滿足條件,不滿足條件的情況是不會(huì)執(zhí)行的的所以switch的效率會(huì)相對(duì)if{}else{}更高一些,而且這兩個(gè)方法是可以無(wú)門(mén)檻互換的。

switch的使用:

  • 能用于switch判斷的類(lèi)型有:byte、short、int、char(JDK1.6),還有枚舉類(lèi)型,但是在JDK1.7后添加了對(duì)String類(lèi)型的判斷
  • case語(yǔ)句中少寫(xiě)了break,編譯不會(huì)報(bào)錯(cuò),但是會(huì)一直執(zhí)行之后所有case條件下的語(yǔ)句而不再判斷,直到default語(yǔ)句
  • 若果沒(méi)有符合條件的case就執(zhí)行default下的代碼塊,default并不是必須的,也可以不寫(xiě)
switch(mark) {
      case 0:
        System.out.println(mark);
  break;
      case 10:
        System.out.println(mark);
     break;
      case 20:
        System.out.println(mark);
        break;
      }

這里mark值是判斷條件,case 對(duì)應(yīng)的是具體的值,如果mark=0或者mark=10或者mark=20,相對(duì)應(yīng)的條件成立就會(huì)執(zhí)行case中的程序

在這里有一個(gè)思維誤區(qū)很容易出錯(cuò),看下面代碼:

switch(mark) {
      case 0:
        System.out.println(mark);
        mark = 10;
        break;
      case 10:
        System.out.println(mark);
        mark = 20;
        break;
      case 20:
        System.out.println(mark);
        mark = 30;
        break;
      }

這段代碼比和上面的代碼相比,在每個(gè)case中會(huì)重新給mark賦值,讓這個(gè)重新賦的值和下一步的case相對(duì)應(yīng)。

錯(cuò)誤思維:如果mark的初始值是0,這個(gè)switch程序會(huì)執(zhí)行三次,執(zhí)行的順序依次是0,10,20。

因?yàn)槲覀冊(cè)诿恳徊降腸ase中都重新給mark賦值了,所以不熟悉的很容易就會(huì)覺(jué)得這個(gè)switch會(huì)從上往下執(zhí)行,凡是滿足條件的步驟都會(huì)執(zhí)行。其實(shí)這個(gè)switch是只會(huì)執(zhí)行一次的,因?yàn)槊總€(gè)case后面都跟了一個(gè)break,這個(gè)break的作用就是跳出當(dāng)前循環(huán)也就是跳出當(dāng)前的switch,所以這個(gè)switch只會(huì)執(zhí)行mark初始值對(duì)應(yīng)的那個(gè)case,后面的步驟不會(huì)繼續(xù)執(zhí)行。如果要想三個(gè)步驟都依次執(zhí)行需要在switch外面加上一個(gè)while循環(huán),在一定的條件內(nèi)重復(fù)執(zhí)行switch:如下加上while

while(mark<=30) {
      switch(mark) {
      case 0:
        System.out.println(mark);
        mark = 10;
        break;
      case 10:
        System.out.println(mark);
        mark = 20;
        break;
      case 20:
        System.out.println(mark);
        mark = 30;
        break;
      }
    }

總結(jié):每次進(jìn)入switch,如果每個(gè)case后面都用break跳出當(dāng)前循環(huán)了,則不管mark的值怎么變,只會(huì)執(zhí)行一個(gè)case

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java處理按鈕點(diǎn)擊事件的方法

    java處理按鈕點(diǎn)擊事件的方法

    下面小編就為大家?guī)?lái)一篇java處理按鈕點(diǎn)擊事件的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 關(guān)于maven:pom文件的使用解析

    關(guān)于maven:pom文件的使用解析

    這篇文章主要介紹了關(guān)于maven:pom文件的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 一文教你搞定Java Optional類(lèi)判空操作

    一文教你搞定Java Optional類(lèi)判空操作

    有時(shí)項(xiàng)目組內(nèi)做code review,會(huì)充斥著大量的、原始的、丑陋的判空語(yǔ)句。讓整體的代碼顯得十分的臃腫龐大丑陋,那么怎么辦呢?利用Optional這個(gè)jdk8中引入的類(lèi)就可以優(yōu)雅的處理,現(xiàn)在我們來(lái)詳細(xì)講解下這個(gè)類(lèi)的使用和源碼
    2022-10-10
  • Java?C++題解eetcode940不同的子序列?II

    Java?C++題解eetcode940不同的子序列?II

    這篇文章主要為大家介紹了Java?C++題解eetcode940不同的子序列?II實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • java實(shí)現(xiàn)操作系統(tǒng)中的最佳置換Optimal算法

    java實(shí)現(xiàn)操作系統(tǒng)中的最佳置換Optimal算法

    這篇文章主要介紹了java實(shí)現(xiàn)操作系統(tǒng)中的最佳置換Optimal算法 ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • java連接hdfs ha和調(diào)用mapreduce jar示例

    java連接hdfs ha和調(diào)用mapreduce jar示例

    這篇文章主要介紹了Java API連接HDFS HA和調(diào)用MapReduce jar包,需要的朋友可以參考下
    2014-03-03
  • Java中DecimalFormat用法詳解

    Java中DecimalFormat用法詳解

    這篇文章主要為大家詳細(xì)介紹了Java中DecimalFormat的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本

    如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本

    這篇文章主要介紹了如何用java程序(JSch)運(yùn)行遠(yuǎn)程linux主機(jī)上的shell腳本,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • SpringBoot淺析依賴管理與自動(dòng)配置概念與使用

    SpringBoot淺析依賴管理與自動(dòng)配置概念與使用

    一般來(lái)講SpringBoot項(xiàng)目是不需要指定版本,而SSM項(xiàng)目是需要指定版本,SpringBoot的核心依賴就是spring-boot-starter-parent和spring-boot-starter-web兩個(gè)依賴,這篇文章主要介紹了SpringBoot依賴管理與自動(dòng)配置概念與使用
    2022-10-10
  • Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼

    Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論