java中switch語句注意--break

renke發表於2021-09-09

switch語句中case分支後的每個程式碼塊後都有一條break語句,這個break語句有極其重要的意義:用於終止當前分支的執行體。如果case分支後沒有使用break來終止這個分支的執行體,即使使用花括號來包圍該分支的執行體也是無效的。

    Java一旦找到匹配的case分支(表示式的值與case後的值相等),程式開始執行這個case執行體,不在判斷與後面case、default標籤的條件是否匹配,除非遇到break才結束該執行體。

例:

[java] view plain copy
public class BreakTest {
public static void main(String[] args) {
// 宣告變數score,併為其賦值為'C'
char score = 'C';
// 執行swicth分支語句
switch (score) {
case 'A': {
System.out.println("優秀.");
}
case 'B': {
System.out.println("良好.");
}
case 'C': {
System.out.println("中");
}
case 'D': {
System.out.println("及格");
}
case 'E': {
System.out.println("不及格");
}
default:
System.out.println("成績輸入錯誤");
}
}
}

上面的程式省略了case分支後的break語句,為每個程式分支都增加了花括號(這個花括號通常都沒有太大的作用)用以表示執行體結束,執行結果為下圖:

從執行結果看出:當score表示式的值等於case ‘C’分支的比較值之後,程式一直執行每個分支的執行體,不再與各個分支的比較值進行比較,這是因為省略了case分支後break語句。

從邏輯意義上來看,Java語句根本不應該允許省略break的情形發生,因為省略break給實際程式設計沒有帶來多大好處,只是增加了引入陷阱的機會。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/430/viewspace-2798885/,如需轉載,請註明出處,否則將追究法律責任。

相關文章