JAVA新手教學 (13) – switch 選擇結構
在前面的章節,我們提到了if、if … else、else if等指令,這些都是屬於選擇結構的指令。今天要講的switch指令是Java提供的另一個條件判斷陳述式,雖然沒有if 來得好用,但使用在適當的地方,可比if判斷式來得有效率喔!就來看看與前面幾個選擇結構指令有甚麼差別?又有那些優點?我們會在本章節進行討論。
switch選擇結構
- switch指令類似if…else if ,適合使用於多重選擇的情況,透過某個變數或運算式而執行不同的動作。
- 語法如下圖,switch的括號內必須是整數變數(byte、short、int)、字元變數(char)或是運算式。
- case符合式、break、default又是甚麼東西呢?
case符合式
- 可以是整數或整數運算式。ex. 7, 16/12
- 可以是字元常數。 ex.”F”.”11″
- 可以是唯讀(final)整數變數。
- 後面接的是冒號(:)不是分號(;)
break
可以看到在每個case裡都有一個break,其意義為”立即中斷並離開迴圈,從迴圈的下一項指令繼續執行”。經常使用在各種重複結構指令以及今天教的switch選擇結構中。
default
當變數不符合上述所有case的話,就會執行default的程式碼,跟if…else if最後的else一樣。
實例講解1
以下圖為例,假設b可能是1、2或3。a=b但我不知道b等於多少。我可以利用switch結構尋找,以淺顯易懂的方式來講,( a )代表變數a是我要觀察的對象,符合式就是該對象的可能值。case 1:代表如果a是1就執行以下程式到break跳出switch程式段,case 2、case 3以此類推。
實例講解2
假設a是在1到10之間的整數,我想判斷他是大於5還是小於等於5,可以利用switch選擇結構。case1~5的執行內容都是一樣的,我們可以省略前面相同的指令。不需要每一個case都打出來,可以節省很多時間。剩下的6~10我們可以跟1~5一樣打出來,但是有些案例不可能只有10個可能性,有可能上百上千個,一個一個打出來非常沒效率,因此可以善用default,如果上述case皆不符合該變數,則執行default的內容。