1. 程式人生 > >從零開始學大數據-Java基礎-switch語句(6)

從零開始學大數據-Java基礎-switch語句(6)

大數據 Java CCIE 從零開始學大數據


我們從零開始學習大數據技術,從java基礎,到Linux技術涉獵,再深入到大數據技術的Hadoop、Spark、Storm技術,最後到大數據企業平臺的搭建,層層遞進,由點到面!希望技術大牛能過來指導學習。


上一節學習了流程控制語句,本節學習switch語句。

開始之前,我們先看一下上節的練習題。


一、練習題

if語句格式的練習:

1、獲取兩個數據中較大的值

2、判斷一個數據是奇數還是偶數,並輸出

技術分享圖片

程序執行結果如下:

技術分享圖片



二、switch語句


流程控制語句的選擇結構

1
選擇結構(也被稱為分支結構)

選擇結構有兩種語句,分別為如下:

  • if 語句

  • switch語句

前面已經對if語句做了探討,本節往下一起了解下switch語句


switch語句


switch語句格式:

switch(表達式){

case 值1:

語句體1;

break;

case 值2:

語句體2;

break;

...

default;

語句體n+1;

break;

}

格式的解釋:

  • switch:表示這是switch選擇結構

  • 表達式:這個地方的取值有限定的

byte,short,int,char

JDK5以後可以是枚舉

JDK7以後可以是字符串

  • case:後面跟的是要和表達式進行比較的值

  • 語句體:要執行的代碼

  • break:表示中斷和結束的意思,可以控制switch語句的結束

  • default:當所有的值和表達式不匹配的時候,就執行default控制的語句,其實就相當於if語句的else


執行流程:

  1. 首先計算出表達式的值和case依次比較

  2. 一旦有對應的值,就執行相應的語句體

  3. 在執行的過程中,遇到break就會結束

  4. 最後,如果所有的case都和表達式的值不匹配,就會執行default中的語句體,程序結束





技術分享圖片

思考:

  1. byte可以作為switch的表達式嗎?

  2. long可以作為switch的表達式嗎?

  3. String可以作為switch的表達式嗎?

實例:

鍵盤錄入一個數據,根據這個數據,我們輸出對應的星期

  • 鍵盤錄入1,對應輸出星期一

  • 鍵盤錄入2,對應輸出星期二

  • ...

  • 鍵盤錄入7,對應輸出星期日


實例分析:

1、鍵盤錄入,用switch實現

2、判斷我們可以使用if語句,也可以使用switch語句

技術分享圖片程序代碼:

技術分享圖片技術分享圖片

技術分享圖片


程序執行結果:

技術分享圖片技術分享圖片


技術分享圖片


switch語句的註意事項:


1、
case 後面只能是常量,不能是變量,而且,多個case後面的值不能出現相同的


2、
default可以省略嗎?
  • 可以省略,但是不建議,因為它的作用是對不正確的情況給出的提示。

  • 特殊情況:case就可以把值固定的(單選項),可以考慮把default給省略

3、
break可以省略嗎?
  • 可以省略,不會報錯,但是最終執行結果不是我們想要的,會出現case穿透現象。

  • 不建議省略。


4、

default一定要在最後嗎?
  • 不是,可以在任意位置,但是建議在最後,否則匯產生case穿透。


5、

switch語句的結束條件


  • 遇到break就結束


switch註意事項-實例


下面我們針對相關實例看下註意實現的效果。

1、舉例(同名case ID & 變量ID)

技術分享圖片技術分享圖片

技術分享圖片技術分享圖片

程序執行結果:

技術分享圖片技術分享圖片

  • 可見,case後面跟的必須是常量,不可以是變量,並且case後面的值不能相同。


技術分享圖片


2、舉例(省略default語句)

技術分享圖片技術分享圖片技術分享圖片

技術分享圖片程序執行結果:

技術分享圖片技術分享圖片

  • 可見,在swith語句中,default是可以省略的,但是最終會導致一些不正確的情況不被排除在外,可以正常輸入。雖然省略default不會有報錯,但不建議省略掉。


技術分享圖片


3、舉例(省略break)

技術分享圖片技術分享圖片技術分享圖片

技術分享圖片程序執行結果:

技術分享圖片技術分享圖片

  • 可見,在程序執行的時候,如果沒有break進行程序中斷,那麽程序會依次按照順序往下執行,直到遇到break才中止。雖然省略break不會有報錯,但不建議省略掉,否則程序打印的結果會有誤。


技術分享圖片


4、舉例(default語句不放最後)

技術分享圖片技術分享圖片

技術分享圖片技術分享圖片

程序執行結果:

技術分享圖片技術分享圖片

  • 可見,如果default不放在最後,程序本身不會報錯,但是最終執行的時候,會出現case穿透。


5、舉例:(switch語句結束條件)

技術分享圖片技術分享圖片

程序執行結果:

技術分享圖片技術分享圖片

  • 可見,在語句x,y中的,遇到了break就直接結束語句輸出;

  • 在語句a,b中,沒有遇到break,則程序執行到最後才做輸出。


擴展練習題(自行完成):

1、隨便出一個選擇題,通過鍵盤錄入,根據我們的選擇來給出你的選擇結果。

2、根據鍵盤錄入的字符串,判斷是否有滿足要求的,如果有就輸出否則,提示有誤。


本節我們就先告一段落,下一節我們將學習循環結構語句


往期文章:


從零開始學大數據-Java基礎開篇(1)

從零開始學大數據-Java基礎語法(2)

從零開始學大數據-Java運算符(3)

從零開始學大數據-Java基礎-三元運算符/鍵盤錄入(4)

從零開始學大數據-Java基礎-流程控制語句(5)



技術分享圖片


從零開始學大數據-Java基礎-switch語句(6)