網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了望都免費建站歡迎大家使用!
我們從零開始學(xué)習(xí)大數(shù)據(jù)技術(shù),從java基礎(chǔ),到Linux技術(shù)涉獵,再深入到大數(shù)據(jù)技術(shù)的Hadoop、Spark、Storm技術(shù),最后到大數(shù)據(jù)企業(yè)平臺的搭建,層層遞進,由點到面!希望技術(shù)大牛能過來指導(dǎo)學(xué)習(xí)。
上一節(jié)學(xué)習(xí)了流程控制語句,本節(jié)學(xué)習(xí)switch語句。
開始之前,我們先看一下上節(jié)的練習(xí)題。
一、練習(xí)題
if語句格式的練習(xí):
1、獲取兩個數(shù)據(jù)中較大的值
2、判斷一個數(shù)據(jù)是奇數(shù)還是偶數(shù),并輸出
程序執(zhí)行結(jié)果如下:
二、switch語句
流程控制語句的選擇結(jié)構(gòu)
選擇結(jié)構(gòu)有兩種語句,分別為如下:
if 語句
switch語句
前面已經(jīng)對if語句做了探討,本節(jié)往下一起了解下switch語句
switch語句
switch語句格式:
switch(表達(dá)式){
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
...
default;
語句體n+1;
break;
}
格式的解釋:
switch:表示這是switch選擇結(jié)構(gòu)
表達(dá)式:這個地方的取值有限定的
byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是字符串
case:后面跟的是要和表達(dá)式進行比較的值
語句體:要執(zhí)行的代碼
break:表示中斷和結(jié)束的意思,可以控制switch語句的結(jié)束
default:當(dāng)所有的值和表達(dá)式不匹配的時候,就執(zhí)行default控制的語句,其實就相當(dāng)于if語句的else
執(zhí)行流程:
首先計算出表達(dá)式的值和case依次比較
一旦有對應(yīng)的值,就執(zhí)行相應(yīng)的語句體
在執(zhí)行的過程中,遇到break就會結(jié)束
最后,如果所有的case都和表達(dá)式的值不匹配,就會執(zhí)行default中的語句體,程序結(jié)束
思考:
byte可以作為switch的表達(dá)式嗎?
long可以作為switch的表達(dá)式嗎?
String可以作為switch的表達(dá)式嗎?
實例:
鍵盤錄入一個數(shù)據(jù),根據(jù)這個數(shù)據(jù),我們輸出對應(yīng)的星期
鍵盤錄入1,對應(yīng)輸出星期一
鍵盤錄入2,對應(yīng)輸出星期二
...
鍵盤錄入7,對應(yīng)輸出星期日
實例分析:
1、鍵盤錄入,用switch實現(xiàn)
2、判斷我們可以使用if語句,也可以使用switch語句
程序代碼:
程序執(zhí)行結(jié)果:
可以省略,但是不建議,因為它的作用是對不正確的情況給出的提示。
特殊情況:case就可以把值固定的(單選項),可以考慮把default給省略
可以省略,不會報錯,但是最終執(zhí)行結(jié)果不是我們想要的,會出現(xiàn)case穿透現(xiàn)象。
不建議省略。
4、
不是,可以在任意位置,但是建議在最后,否則匯產(chǎn)生case穿透。
5、
遇到break就結(jié)束
下面我們針對相關(guān)實例看下注意實現(xiàn)的效果。
1、舉例(同名case ID & 變量ID)
程序執(zhí)行結(jié)果:
可見,case后面跟的必須是常量,不可以是變量,并且case后面的值不能相同。
2、舉例(省略default語句)
程序執(zhí)行結(jié)果:
可見,在swith語句中,default是可以省略的,但是最終會導(dǎo)致一些不正確的情況不被排除在外,可以正常輸入。雖然省略default不會有報錯,但不建議省略掉。
3、舉例(省略break)
程序執(zhí)行結(jié)果:
可見,在程序執(zhí)行的時候,如果沒有break進行程序中斷,那么程序會依次按照順序往下執(zhí)行,直到遇到break才中止。雖然省略break不會有報錯,但不建議省略掉,否則程序打印的結(jié)果會有誤。
4、舉例(default語句不放最后)
程序執(zhí)行結(jié)果:
可見,如果default不放在最后,程序本身不會報錯,但是最終執(zhí)行的時候,會出現(xiàn)case穿透。
5、舉例:(switch語句結(jié)束條件)
程序執(zhí)行結(jié)果:
可見,在語句x,y中的,遇到了break就直接結(jié)束語句輸出;
在語句a,b中,沒有遇到break,則程序執(zhí)行到最后才做輸出。
1、隨便出一個選擇題,通過鍵盤錄入,根據(jù)我們的選擇來給出你的選擇結(jié)果。
2、根據(jù)鍵盤錄入的字符串,判斷是否有滿足要求的,如果有就輸出否則,提示有誤。
本節(jié)我們就先告一段落,下一節(jié)我們將學(xué)習(xí)循環(huán)結(jié)構(gòu)語句
往期文章:
從零開始學(xué)大數(shù)據(jù)-Java基礎(chǔ)開篇(1)
從零開始學(xué)大數(shù)據(jù)-Java基礎(chǔ)語法(2)
從零開始學(xué)大數(shù)據(jù)-Java運算符(3)
從零開始學(xué)大數(shù)據(jù)-Java基礎(chǔ)-三元運算符/鍵盤錄入(4)
從零開始學(xué)大數(shù)據(jù)-Java基礎(chǔ)-流程控制語句(5)