# 選擇結構 ---- ### 選擇結構會根據條件式判斷的結果 ### 選擇不同的應對方式 有以下三種語法 1. if 2. if-else 3. if-else if --- # IF ---- ### if是如果條件式成立,才執行敘述,否則不執行。 ![](https://i.imgur.com/bNo2W7j.png) ---- ## 範例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。 ![](https://i.imgur.com/rBBLq2F.png) ---- ```cpp= if(a==3) cout<<"A等於3耶"; else cout<<"A不等於3耶"; ``` --- # if-else if ---- ### if-else if是依序判斷多個條件式,那個條件式成立,就執行此條件式內的敘述,若都不成立,就執行 else ![](https://i.imgur.com/PDFCmvj.png) ---- ```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 次測驗成績後,輸出最高分 ![](https://i.imgur.com/qShJ7IT.png) ---- ## 解答 ![](https://i.imgur.com/a4u2LRc.png) ---- ## 另解 ```cpp= int a,b,c cin>>a>>b>>c; cout<<max({a,b,c})<<endl; ``` --- ### 2.輸入一個數,並判斷使用者所輸入的數是奇數還是偶數 ![](https://i.imgur.com/mQpIlbX.png) ---- ## 解答 ![](https://i.imgur.com/5fO2fhh.png) ---- ## 另解 ```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 ![](https://i.imgur.com/pBT40jB.png) ---- ## 解答 ```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.試寫一程式,可以判斷所輸入座標的所在象限 ![](https://i.imgur.com/fDAiWOo.png) ---- ![](https://i.imgur.com/1X3ww7x.png) ---- ### 另解 ```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}]"}
    242 views
   Owned this note