switch…case這個條件判斷的用法,就如同他的名字一樣的直覺。
switch,中文有切換的意思,而case則有案例的意思。它的運作原理跟 if 非常相似,不過在程式中,閱讀起來有時比if來得簡單也更容易懂,尤其當判斷的結果需要很多種變化時,switch…case就是個不錯用的流程控制語法。
這是一個簡單的switch…case例子:
(來源:Cherng)
不對,這個才是:
電子、電腦、網路、科技與新知。
其實講到了條件判斷就該題一下跳出迴圈的這個流程控制方式。這邊先拿簡單的拿break這個最常見的文字來說明,範例先行!這次的程式碼很短,其實是我省略幾個東西,包含縮排以及if的大小括弧,因為if只有一行需要執行的程式碼,因此是可以省略大小括弧的。好的,那麼我想大家都看見關鍵字break了。[…]
其實講到了條件判斷就該題一下跳出迴圈的這個流程控制方式。 斯斯有兩種,迴圈跳出則有三種。
全部跳出則是return 這邊先拿簡單的拿break這個最常見的文字來說明,範例先行!
int day,money=0;
for(day=0;day<30;day++){
System.out.println(money); //此為JAVA輸出語法,C語言請改用 printf(“%d”,money);
if(money>100) break;
money += 5; //這行等同 money = money + 5;
}
這次的程式碼很短,其實是我省略幾個東西,包含縮排以及if的大小括弧,因為if只有一行需要執行的程式碼,因此是可以省略大小括弧的。
好的,那麼我想大家都看見關鍵字break了。
Break 在英文中有打破、破壞的意思,藉由這個意思代入程式碼中來理解這一小個英文單字在程式碼中到底扮演了何種的角色。
在這段簡易的範例程式碼中,我利用if設定了一個條件,也就是當money這個變數的數值到達100之後程式碼便會執行 break;
這個單字所代表的意思,是的,你會發現程式數到100後便不會再計數下去了。
接下來是 continue ,這個單字在英文的意思是繼續,不過在程式中的繼續是回到一開始再繼續往下。 簡單的例子:
1 2 3 4 5 6 |
int i; for(i=0;i<10;i++){ if(i==5) continue; System.out.println(i); //此為JAVA輸出語法,C語言請改用 printf("%d",i); } |
這個簡單的範例中,若你實際執行的話…
「012346789」某A數著,然後說:「咦? 好像少了5呢!」
是的,這就是 continue 的功用,他不像 break 那樣霸道,直接打壞整個迴圈,而是跳過這次的迴圈再繼續執行。
而若在JAVA中與一個標籤做搭配,此時的功用與C中的 goto 非常類似。
1 2 3 4 5 6 7 |
int i; c: for(i=0;i<10;i++){ System.out.println(i); //此為JAVA輸出語法,C語言請改用 printf("%d",i); if(i==5) continue c; } |
這只是個範例,在這範例的執行結果與上一個範例是很類似的,不過continue只能往上不能往下,這點在撰寫程式的時候要特別注意。
本來是想要再寫一個return的,不過return比較像是在回傳某些東西的時候才會運用比較多,而也正因為它是回傳,所以當return放在流程控制中的時候,就會發現它的功用與 break 非常類似,不同點在於,return還具有回傳數值之類的功能。
因為這樣,關於return的用法我會放在之後介紹到函數以及物件的時候再談囉。