生活中免不了會遇到選擇,當然程式中也會。
使用之前寫過的 if…else 可以達成選擇的目標,但是只限於兩樣事物二選一的時候,看看以下例子:
if ( condition1 ) {
Do someting;
} else if ( condition2 ) {
Do something2;
} else if ( condition3 ) {
Do something3;
} else if ( condition4 ) {
Do something4;
} else if ( condition5 ) {
Do something5;
} else if ( condition6 ) {
Do something6;
} else if ( condition7 ) {
Do something7;
} else if ( condition8 ) {
Do something8;
…….
要選個答案都得經過 Boolean ,如果答案在最後一個呢?
看起來是不是有種沒完沒了的感覺呢?
因此,switch…case 就派上用場啦!
switch…case 是一段能在多樣事物中選擇一個的語法,但跟 if…else 不同的是:
switch… case 不是利用 Boolean 運算做決定,只是單純驗證資料是否符合。
switch (theData) {
case MatchOne:
MatchOneStatement;
break;
case MatchTwo:
MatchTwoStatement;
break;
case MatchThree:
MatchThreeStatement;
break;
......
default:
DefaultStatement;
break;
}
theData = 預檢測的資料,要用()框起來。
再來是檢測資料( case 後記得加上分號):
當 MatchOne 符合的時候,就執行 MatchOneStatement ,執行完畢就 break;
(跳出,離開 switch…case )…以下皆同。
當遇到以上情況都不符合的時候,則執行 default ,也就是是先預設的敘述。
考卷選擇題也會有以上皆非的選項,以上皆非就等於是 default 囉!
可以不加 break; 嗎?也是可以,不過會變成這樣:
當 MatchOne 符合的時候,就執行 MatchOneStatement ,執行完畢再看 MatchTwo 是否符合? MatchThree 是否符合?…怎麼又是沒完沒了的樣子呢?因此,除非有特殊用途,還是記得加上 break; 喔!
本文同步發表於 http://ithelp.ithome.com.tw/ironman7/app/#/article/dev/recent/10156407