- swatch()誇號內一定要加上可以產生number或char的運算式或是變數
- 他會從成立的 case 開始往下執行
- case 一定要在 swatch(){...} 大誇號內
- case 後面一定要加 判斷的字元
- 判斷的字元 後面 一定要加 冒號 :
- case 不能輸入範圍 EX: n <>
- break 可以不加
- 和 if else 不一樣的地方在於 else = default
2008年12月22日
判斷指令-switch case
switch case
其實 switch case 用文字表達比較抽象
先說明用法
一行一行來說明
宣告一個 整數變數 n
讓使用者輸入 n
讓 n 取商數
PS:整數 在做除法時 只會留下商數 EX:10/3=3 詳細以後再說明
代表我把 n 這個變數當作以下 case 的 判斷變數
現在我們已經進入 switch 裡面 第看到
如果變數 n 是 10 就會執行 冒號 : 下面的程式
之後看到
這行意思就是跳出靠自己最近的 switch
PS: break 也可用在迴圈中 往後會談
那如果不符合條件哩 ?
在往下看 case 阿
如果變數 n 是 9 就會執行 冒號 : 下面的程式
一樣!!如果成立執行
一樣 ! 輸出完之後結束 switch
要是又不符合?
請繼續往下看 case
如果變數 n 是 8 就會執行 冒號 : 下面的程式
一樣!!如果成立執行
到了這裡有沒有跟 if(){...}else if(){...}else if(){...}....
很像!
現在看到最後如果都不成立 !
和 if else 的 else 一樣可以不打
還有一件事 case 不能打範圍 EX: n < 60
現在有個問題
那麼...為何 case 10 ~case 6 最後都要 break ?
default 卻例外
其實他也可以加啦!!
只是既然他都是最後才執行 加不加 break 都沒差阿!
現在我們把程式程式中的 switch 改成
PS:請注意有註解的那幾行
這時候我程式在執行的時候
我輸入 50 代表不及格吧!
會出現什麼?
FE
這就是答案
為什麼?因為
50 / 5 =5 對吧!
那她就會執行
可是我不是說過 break 是跳出的意思嗎?
你現在有看到 break 嗎?
沒有阿!!
所以他會往下執行
他這時候不會去看 case 6 到底是不是他應該執行的判斷
他不會理會他 只會往下執行
直到碰到 break 為止
switch case 現在用文字看會比較抽象
請開啟你的 DEV C++ 動手做一次
並且把
到處亂 丟 看看
把所有的 break 加上註解執行看看
你一定要知道的事情
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言