tags: tgirc早修book

switch

switch 是多重條件判斷的陳述式,在某些情況下會比 if else 來的有效率

基本架構

#include <iostream> using namespace std; int main(){ switch(變數名稱或運算式){ case 符合數字或字元: 陳述句一; break; case 符合數字或字元: 陳述句二; break; default: 陳述句三; break; } return 0; }

在一開始的括號中,存放著數值或是運算式,找到符合 case 的值後就會執行指令,直到遇到 break 才會離開 switch,case 沒有加上 break 的話,就會一路跑下去,直到遇到下一個符合條件的 case 中的 break 或是跑入 default 中並執行指令,如果不需要 default 執行什麼事,則可以省略

範例

範例 1
為了食物的品質,海綿寶寶被要求做出的美味蟹堡的美味分數都要在 7 分以上,滿分 10 分,否則通通都要拿去倒掉,派大星則是過來協助幫忙把要丟掉的美味蟹堡分隔開來,但顯然冒失的派大星無法勝任這份工作,請撰寫一份程式幫忙他吧!

#include <iostream> using namespace std; int main(){ int score; while(cin>>score){ switch(score){ case 10: cout<<"It's really d3lic1Ou2.\n"; break; case 9: cout<<"It's really d3lic1Ou2.\n"; break; case 8: cout<<"It's really d3lic1Ou2.\n"; break; case 7: cout<<"It's really d3lic1Ou2.\n"; break; default: cout<<"~!@#$%^&*()_+\n"; break; } } return 0; }

範例 2

呈上題,每次都需要一行一行輸出太累了,可以設定一個區間,只要變數的值符合這個區間就執行指令

#include <iostream> using namespace std; int main(){ int score; while(cin>>score){ switch(score){ case 7 ... 10: cout<<"It's really d3lic1Ou2.\n"; break; default: cout<<"~!@#$%^&*()_+\n"; break; } } return 0; }

撰寫時要記得, 的左右都需要加上空白

除此之外,default 也可以放在最上方

#include <iostream> using namespace std; int main(){ switch(變數名稱或運算式){ default: 陳述句三; break; case 符合數字或字元: 陳述句一; break; case 符合數字或字元: 陳述句二; break; } return 0; }

default 在最下方時,可以不用加上 break,但置於最上方時一定要加上 break,因此建議都加上 break 避免執行錯誤