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

來源:互聯網
上載者:User

標籤:大資料   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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.