# 選擇結構
----
### 選擇結構會根據條件式判斷的結果
### 選擇不同的應對方式 有以下三種語法
1. if
2. if-else
3. if-else if
---
# IF
----
### if是如果條件式成立,才執行敘述,否則不執行。

----
## 範例code
```cpp=
if(a == 3){
cout<<"A等於3耶";
}
if(a == 3)
cout<<"A等於3耶";
if(a == 3) cout<<"A等於3耶";
```
---
# if-else
----
### if-else是如果條件式成立,執行敘述1;否則執行敘述2。

----
```cpp=
if(a==3)
cout<<"A等於3耶";
else cout<<"A不等於3耶";
```
---
# if-else if
----
### if-else if是依序判斷多個條件式,那個條件式成立,就執行此條件式內的敘述,若都不成立,就執行 else

----
```cpp=
if(a == 1) cout<<"A等於1耶";
else if(a == 2) cout<<"A等於2耶";
else if(a == 3) cout<<"A等於3耶";
else cout<<"A不等於1或2或3耶"
```
----
# 以上就是對選擇結構的大概介紹
---
# 進階用法
---
## A?B:C
----
## 語法
A?B:C
A is true -> B
A is false -> C
```cpp=
cout<<((a==3) ? "A等於3耶" : "A不等於3耶")<<endl;
```
---
## 短路
----
# &&運算子
(判斷式A)&&(判斷式B)
- 判斷式A 成立
- 檢查B是否成立
- 否則直接跳過B
----
## assign
對一個數值做改變的時候
(ex. a = 3 or a = a+1)
如果成功操作
系統會對這件事情回傳 true
----
## 範例code
```cpp=
if(a == 3){
b --;
c +=2;
}
if(a == 3 && b--)
c+=2;
```
---
# 例題
---
### 1.寫一程式,輸入 3 次測驗成績後,輸出最高分

----
## 解答

----
## 另解
```cpp=
int a,b,c
cin>>a>>b>>c;
cout<<max({a,b,c})<<endl;
```
---
### 2.輸入一個數,並判斷使用者所輸入的數是奇數還是偶數

----
## 解答

----
## 另解
```cpp=
int a;cin>>a;
if(a%2) cout<<"奇數"<<endl;
else cout<<"偶數"<<endl;
cout<<(a % 2 ? "奇數":"偶數")<<endl;
```
---
### 3.判斷學生的成績等級
大於等於90分為A
大於等於80分為B
大於等於70分為C
大於等於60分為D
不及格為E

----
## 解答
```cpp
#include <bits/stdc++.h>
using namespace std;
int32_t main() {
int score;
cout<<"Give :";
cin >> score;
if (score >= 90)
cout << "get A" << endl;
else if (score >= 80)
cout << "get B" << endl;
else if (score >= 70)
cout << "get C" << endl;
else if (score >= 60)
cout << "get D" << endl;
else
cout << "get E" << endl;
return 0;
}
```
---
### 4.試寫一程式,可以判斷所輸入座標的所在象限

----

----
### 另解
```cpp=
int x,y;
cin>>x>>y;
cout<<4-(abs(3*(x / abs(x))+2*(y / abs(y)))+4*(y / abs(y))+3)/4<<endl;
```
---
{"metaMigratedAt":"2023-06-15T13:54:41.090Z","metaMigratedFrom":"Content","title":"選擇結構","breaks":true,"contributors":"[{\"id\":\"7d4f22ac-9934-417b-aa5e-c76934d4fc98\",\"add\":2641,\"del\":238}]"}