# 條件判斷 ## 2021/09/24 電算社第二堂社課 --- ## 複習基本的程式架構 ```cpp= #include<iostream> using namespace std; int main() { } ``` ---- ```cpp= #include<xxxxxxxxx> //導入資料庫 using namespace std; //以後code 不用打 std:: // 使用命名空間(? 間單來說就是偷懶 int main() { //主程式 } ``` --- ## 複習上次學過的條件運算 ---- ### 條件運算 算完的結果會是一個布林值 不是True就是False ![](https://i.imgur.com/ezyop8a.png =50%x) ---- ### 邏輯運算 多條件的條件運算 得到的結果也是一個布林值 ![](https://i.imgur.com/qekUQvu.png) ---- Examples ```cpp= int a = 5 , b = 3 , c = 1; cout << (a > b); // 1 cout << (b > a); // 0 cout << (a > b && c > b); // 0 cout << (a > b || c > b); // 1 cout << ((a > b) && !(c > b)); // 1 ``` --- ## 條件判斷 --- ### if ```cpp= // a 為 bool if(a){ ... //裡面放a成立的時候要做的事 } ``` ---- ### else ```cpp= // a 為 bool if(a){ ... } else{ //只要a不成立就會做這件事 ... } ``` 有 else 就一定會有 if, 所以在打Code的時候記得要注意喔 ---- ### else if ```cpp= // a,b,c,d 都是 bool if(a){ ... } else if(b){ //如果a不成立,且b成立,就會做 ... } else if(c){ //如果a、b不成立,且c成立,就會做 ... } else{ //如果a、b、c都不成立就會做 ... } ``` ---- ### 巢狀if : if裡面再包if ```cpp= if(a){ if(b){ //如果a、b都成立就會做 ... } } //上面的式子相當於 if(a && b){ } ``` --- ### 三元預算子(Question mark operator) ---- #### 基本結構 ```cpp= (a)? b : c //如果a是真,就會執行b,如果a是假,就會執行c ``` 回傳值類型會依據b和c的類型改變, 盡量不要使用不同的類型 ---- #### 什麼時候會用到? 在只有單行if - else的時候 ```cpp= #include<iostream> using namespace std; int main(){ int a; cin >> a; if(a % 2 == 0) cout << "a是偶數"; else cout << "a是奇數"; } ``` ---- 比起那樣寫,你也可以選擇這個: ```cpp= #include<iostream> using namespace std; int main(){ int a; cin >> a; cout << ( (a % 2 == 0) ? "a是偶數" : "a是奇數" ); } ``` --- ### 小練習 電算社想要針對每個社員的表現進行評分, 在經過了兩次考試之後, 決定讓總和90分以上的得A, 總和80分以上得B, 總和70分以上得C, 總和60分以上得D, 總和59分以下得F。 ---- 輸入說明:輸入兩個整數m,n。(0<=m,n<=50) 輸出說明:輸出等第。 範例輸入:42 45 範例輸出:B ---- 我是防雷頁:D ---- 解答 ```cpp= #include<iostream> using namespace std; int main(){ int m, n; cin >> m >> n; int total = m + n; if(total >= 90) cout << "A\n"; else if(total >= 80) cout << "B\n"; else if(total >= 70) cout << "C\n"; else if(total >= 60) cout << "D\n"; else cout << "F\n"; return 0; } ``` --- ### 練習題 * [GeeenJudge a014 : 貨比三家](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=a014) * [GeeenJudge a016 : 閏年判斷](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=a016) ---- 閏年判斷-巢狀判斷 ```cpp= #include <iostream> using namespace std; int main() { int Year; cin >> Year; if(Year % 4 == 0) { if(Year % 400 == 0) cout << "YES"; else if(Year % 100 == 0) cout << "NO"; else cout << "YES"; } else cout << "NO"; cout << "\n"; } ``` ---- 閏年判斷-條件判斷 ```cpp= #include<iostream> using namespace std; int main(){ int Year; cin >> Year; if( Year % 4 == 0 && Year % 100 != 0){ cout << "YES\n"; } else if(Year % 400 == 0){ cout << "YES\n"; } else{ cout << "NO\n"; } return 0; } ```
{"metaMigratedAt":"2023-06-16T10:40:01.403Z","metaMigratedFrom":"YAML","title":"判斷結構","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"theme\":null}","contributors":"[{\"id\":\"4f731eff-9d88-41f4-af56-2e3e02f20cfc\",\"add\":2030,\"del\":380},{\"id\":\"68c94489-3c2e-4879-b847-e982f360b03c\",\"add\":580,\"del\":41},{\"id\":\"efc43b79-1b19-4cb1-9b18-ce50fad56214\",\"add\":1,\"del\":1},{\"id\":\"9e7d687a-83f2-4e8a-8ee6-8846394e69a5\",\"add\":938,\"del\":214},{\"id\":\"4a2636eb-4e67-4bed-8022-8aa0dfe853fb\",\"add\":182,\"del\":1}]"}
    515 views