switch 條件語句也是一種很常用的選擇語句,它和if條件語句不同,它只能針對某個表示式的值作出判斷,從而決定程式執行哪一段**。例如,在程式中使用數字1~7來表示星期一到星期天,如果想根據某個輸入的數字來輸出對應中文格式的星期值,可以通過下面的一段偽**來描述:
用於表示星期的數字
如果等於1,則輸出星期一
如果等於2,則輸出星期二
如果等於3,則輸出星期三
如果等於4,則輸出星期四
如果等於5,則輸出星期五
如果等於6,則輸出星期六
如果等於7,則輸出星期天
對於上面一段偽**的描述,大家可能會立刻想到用剛學過得if…else if…else語句來實現,但是由於判斷條件比較多,實現起來**過長,不便於閱讀。j**a中提供了一種switch語句來實現這種需求,在switch語句中使用switch關鍵字來描述乙個表示式,使用case關鍵字來描述和表示式結果比較的目標值,當表示式的值和某個目標值匹配時,會執行對應case下的語句。具體實現**如下:
switch(用於表示星期的數字)
上面改寫後的偽**便描述了switch語句的基本語法格式,具體如下:
switch (表示式)
在上面的格式中,switch語句將表示式的值與每個case中的目標值進行匹配,如果找到了匹配的值,會執行對應case後的語句,如果沒找到任何匹配的值,就會執行default後的語句。switch語句中的break關鍵字將在後面的做具體介紹,此處,我們只需要知道break的作用是跳出switch語句即可。
需要注意的是,在switch語句中的表示式只能是byte、short、char、int型別的值,如果傳入其它型別的值,程式會報錯。但上述說法並不嚴謹,實際上在jdk5.0中引入的新特性enum列舉也可以作為switch語句表示式的值,在jdk7.0中也引入了新特性,switch語句可以接收乙個string型別的值。
接下來通過乙個案例演示根據數字來輸出中文格式的星期,如下所示。switchdemo01.j**a
publicclassswitchdemo01 }}
執行結果如圖所示。
上述**中,由於變數week的值為5,整個switch語句判斷的結果滿足第17行的條件,因此列印「星期五」,例程中的default語句用於處理和前面的case都不匹配的值,將第3行**替換為int week = 8,再次執行程式,輸出結果如下圖所示。
在使用switch語句的過程中,如果多個case條件後面的執行語句是一樣的,則該執行語句只需書寫一次即可,這是一種簡寫的方式。例如,要判斷一周中的某一天是否為工作日,同樣使用數字1~7來表示星期一到星期天,當輸入的數字為1、2、3、4、5時就視為工作日,否則就視為休息日。接下來通過乙個案例來實現上面描述的情況,如下所示。switchdemo02.j**a
publicclassswitchdemo02 }}
執行結果如下圖所示。
上述**中,當變數week值為1、2、3、4、5中任意乙個值時,處理方式相同,都會列印「今天是工作日」。同理,當變數week值為6、7中任意乙個值時,列印「今天是休息日」。
switch選擇結構
要求控制台輸入選單編號,用int型別接收。根據輸入的選單編號,進入不同的選單頁面 scanner input new scanner system.in system.out.println 歡迎進入大富翁 系統 system.out.println t t1.註冊 system.out.print...
選擇結構 switch語句
格式 switch 表示式 執行流程 1 將表示式和case的值依次從上往下進行比較,如果和case後面的值1匹配了,就執行語句體1 並結束整個switch語句 2 如果沒有匹配,就繼續匹配值2,如果匹配就執行語句體2 3 如果所有的case後面的值都不匹配就執行default後面的語句體n 1 注...
C 選擇結構switch
注意 switch結構以 變數值為條件 根據變數值 選擇 對應的 執行。break 是 退出 迴圈或者其他結構的意思。如果 沒有break switch結構在執行對應語句後,繼續向下執行 其他條件語句,直到最後乙個case 或 default 執行完成退出switch。switch 變數 實際應用i...