溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Javaswitch的使用原理及實(shí)例解析

發(fā)布時(shí)間:2021-09-03 18:18:01 來源:億速云 閱讀:175 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“Javaswitch的使用原理及實(shí)例解析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Javaswitch的使用原理及實(shí)例解析”吧!

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

switch的使用:

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

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)槲覀冊诿恳徊降腸ase中都重新給mark賦值了,所以不熟悉的很容易就會(huì)覺得這個(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

到此,相信大家對(duì)“Javaswitch的使用原理及實(shí)例解析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI