您好,登錄后才能下訂單哦!
本篇內(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í)!
免責(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)容。