---
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。


2. 三整數排序: 輸入三個整數,從小到大排序後輸出

3. 絕對值:輸入一個數字,輸出其絕對值。

4. 輸入一個西元年分,判斷該年分是否為閏年。

5. 輸入一個字元,判斷它是英文大寫字元、或英文小寫字元、或數字字元,若都不是請輸出無法判斷。
