switch 敘述就像 if/else 敘述一樣,switch 敘述可以依照條件執行程式碼,改變程式的流程。
差別在於,switch 敘述只能把基本型別或字串運算式的值,跟預先定義好的常數值做比較。
使用 switch 敘述時,有幾個關鍵字很有用。
switch:這個關鍵字用來宣告 switch 的結構。
後面接著會改變結果的運算式或變數。case:你會用這個關鍵字宣告結果的不同可能性。break:break 關鍵字很有用,可以在想要的流程結束時停止 switch 的執行。
如果忘了加,程式會繼續執行,可能導致出乎意料的結果。default:正如它的名字,當沒有其他 case 符合運算式的結果時,就用它當作預設的結果。最簡單的用法,是測試基本型別或字串運算式,並根據它的值做出決定。 例如:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
你正在開發一套系統,協助某個足球俱樂部網站的工作人員報導比賽。資料會從各種來源接收,經過清理後匯入單一串流。
這支球隊只踢 4-3-3 陣型,也從未同意 1965 年那項允許替補的規則變更,更別說擴編球員名單了。
球員的描述如下:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
請實作靜態方法FootballMatchReports.onField(),根據球衣號碼輸出球員的描述。
FootballMatchReports.onField(10);
// => "striker"
請修改FootballMatchReports.onField()方法,讓它在處理 1-11 範圍之外的球衣號碼時回傳 'invalid'。
FootballMatchReports.onField(13);
// => "invalid"