--- title: 分支流程控制 tage: C++成式 --- ## if 敘述 ## 語法 :::info ‵‵‵cpp= if(條件運算式){ 要做甚麼B }else{ 要做甚麼C } ‵‵‵ - 條件算算式A:執行結果永遠只有 0(false)或 非0的整數(ture) - 條件運算式A 運算結果為ture:執行 要做甚麼B - 條件運算式A 運算結果為fales:執行 要做甚麼C ::: ## 練習 1. 讓使用者輸入一個整數n,判斷n是否為偶數後輸出結果 ```cpp= /************************************************** ** 讓使用者輸入一個整數n,判斷n是否為偶數後輸出的結果 **************************************************/ #include <iostream> using namespace std; int main() { int n; //儲存使用者輸入的整數 cin>>n; //讀取使用者輸入的整數存到n scanf("%d",&n); //讀取使用者輸入的整數存到n if(n%2==0){ //如果n不能被2整除,反過來能被2整除 //cout<<n<<"是偶數\n"; }else{ //cout<<n<<"是奇數\n"; } return 0; } if(!n%2){ //如果n不能被2整除 cout<<n<<"是奇數\n"; }else{ cout<<n<<"是偶數\n"; } return 0; ``` ## 巢狀的條件判斷敘述 :::success ```cpp= if(條件運算式A){ if(條件運算式B){ AB條件運算式要做的串 }else{ if(條件運算式D){ A條件成立 B條件不成立 D條件成立 要做的事 } } }else{ if(條件運算式C){ A創建不成立 C條建成立 要做的事 } { ## if_else if :::info 多選一 ‵‵‵ if(條件運算A){ 條件A成立,要做的事 }else if(條件運算B){ .... .... }else if(條件運算N){ 條件N成立,要做的事 }else{ 所有上述條件都不成立 要做的事 ::: 1. 讓分數 輸出其對應的成績Level Level定義如下 - $A: 90\le x \lt 100$ - $B: 80\le x \lt 90$ - $C: 70\le x \lt 80$ - $D: 60\le x \lt 70$ - $F: x \lt 60$ ``` cpp= ``` /********************************************************** ** 讓使用者輸入一分數$x$ 輸出其對應的成績Level Level定義如下 - $A: 90\le x \lt 100$ - $B: 80\le x \lt 90$ - $C: 70\le x \lt 80$ - $D: 60\le x \lt 70$ - $F: x \lt 60$ ***********************************************************/ #include<iostrem> using namespace std; int main() ( int x; scanf("%d",&x); //讀取輸入的整數後存入x中 if(x>=90) printf("%對應的Level為A\n",x); else if(x>=80 && x>90) print("&d對應的Level為B\n",x); else if(x>=70 && x>80) print("&d對應的Level為C\n",x); else if(x>=60 && x>70) print("&d對應的Level為D\n",x); else if(x>=80 && x>90) print("&d對應的Level為F\n",x); else printf("%對應的Level為F\n",x); return 0; } 條件 ##條件運算 :::info -與if...else相同 二選一 -語法:變數=(條件運算式)?A:B: - 如果 條件運算式為ture 變數=A - 如果 條件運算式為fales 變數=B ::: ## Switch :::info -與 if...else if...else相同 多選一 -語法: ‵‵‵cpp= switch(x){ case v1;當=v1時要做的事情;break; case v2;當=v2時要做的事情break; ............................ case vn:當x=vn時要做的事;break; default:當x都不是上續的任何值要做的事情 } ‵‵‵ ::: ## 練習 1.輸入今日是星期幾 隨後輸入往後輸入多少天 諾輸入職小於30天 以30天計算 請輸入往後多少天后是星期幾 0:星期日 1:星期一 2:星期二 3:星期三 4:星期四 5:星期五 6:星期六 ```cpp=1 ``` # 分支測驗題目 1. 雞兔同籠: 已知雞和兔的總數量為n,總腳數為m。輸入n和m,依序輸出雞和兔的數量。如果無解輸出No answer。 2. 三整數排序: 輸入三個整數,從小到大排序後輸出。 3. 絕對值:輸入一個數字,輸出其絕對值。 4. 輸入一個西元年分,判斷該年分是否為閏年。 5. 輸入一個字元,判斷它是英文大寫字元、或英文小寫字元、或數字字元,若都不是請輸出無法判斷。 # 結果 1. 雞兔同籠: 已知雞和兔的總數量為n,總腳數為m。輸入n和m,依序輸出雞和兔的數量。如果無解輸出No answer。 ![](https://i.imgur.com/xzSUour.png) ![](https://i.imgur.com/OWExCg3.png) 2. 三整數排序: 輸入三個整數,從小到大排序後輸出 ![](https://i.imgur.com/Vf048xZ.png) 3. 絕對值:輸入一個數字,輸出其絕對值。 ![](https://i.imgur.com/Zgrjtaf.png) 4. 輸入一個西元年分,判斷該年分是否為閏年。 ![](https://i.imgur.com/6v2ad2q.png) 5. 輸入一個字元,判斷它是英文大寫字元、或英文小寫字元、或數字字元,若都不是請輸出無法判斷。 ![](https://i.imgur.com/Pl9Tg5H.png)