條件結構之switch語句
在程式語言中,條件語句一般除了if結構,還有一個switch語句結構。在選擇條件少時,if語句很適合,也很簡單。但是當情況變多的時候,再使用if語句就顯得很複雜、很難以理解了。而這時就可以使用switch語句結構來解決問題。所以來說,當出現多重條件是,應該儘可能的使用switch語句來解決問題。其結構一般為:
Switch(條件變數Svariable)
{
casevalue1: 滿足條件的結果情況; break;
casevalue2: 滿足條件的結果情況; break;
casevalue3: 滿足條件的結果情況; break;
…
casevalueN: 滿足條件的結果情況; break;
default:處理錯誤的函式
}
注意一:條件變數Svariable必須是能計算出一個char、byte、short或int型值。
注意二:Value的型別必須與條件變數Svariable的型別一樣。如Svariable是int型,則value就要是int型如0、1、2….,需要注意的是,當Svariable是char型時,value的值需要用“’’”包住,如“ ’A ’”。
注意三:break關鍵字是可選的,它的作用是終止整個switch語句。如果沒有break關鍵詞;不管有沒有找到滿足的條件,語句都會順序執行。最後會執行處理處理錯誤的函式。如有有break關鍵詞,當找到滿足的條件後,整個switch語句就會終止。
注意四:default情況是可選的,它的的作用是處理出現所有條件都沒滿足的情況,給使用者提示。
下面用學生成績等級的例子來加深理解switch語句:成績等級A是90到100,B是75到90,C是60到75,D是低於60.要求輸入成績等級,顯示分數範圍,等級錯誤時,提示使用者重新輸入:
chargrade='A';
switch(grade)
{
case'A': System.out.println("A is thatthe score is 90<=score<=100");break;
case'B': System.out.println("B is thatthe score is 75<=score<90");break
case'C': System.out.println("C is thatthe score is 60<=score<75");break;
case'D': System.out.println("D is thatthe score is 0<=score<60");break;
default:System.out.println("Wrongof the grade .Please re-enter it"); break;
}
通過上面的例子對比之前的switch結構,我們可以看出char型變數grade是swi語句結構中的條件Svariable變數,而grade變數的值A、B、C、D則是相對的vaule1,vaule2,vaule2,vaule3。因為是char變數,所以用“'A'”表示。再來說一下關鍵字break;該程式碼中顯示條件變數grade的值是A;所以當存在break關鍵字時,程式會直接輸出"A is that the score is 90<=score<=100"然後終止。當沒有break關鍵字時,在找到滿足條件後,程式依然執行,在判斷其他三個條件不滿足後,會執行default情況的println輸出函式。也就是程式會輸出:
"Ais that the score is 90<=score<=100"
"Wrongof the grade .Please re-enter it"
這顯然不符合事實。Default中的處理函式就是專門應對所有條件都不滿足的錯誤情況的。所以我們在寫程式碼時,要注意關鍵字break的運用。