###### tags: `sprout` # if-else <!-- Put the link to this slide here so people can follow --> slide: https://hackmd.io/@i2y3z9dITSa_Q_7V7h-AoA/HJwSCKmSU --廖凰汝-- --- 每天,我們都在面臨一連串的選擇 ![](https://sabinahuang.com/wp-content/uploads/choose_direction.jpg) ---- <h1>我今天要去上課嗎?</h1> **如果**<font color="#f00">今天老師點名</font>,<font color="#0f0">我就去</font>。 **如果**<font color="#f00">今天老師不點名</font>,<font color="#0f0">我就不要去</font>。 ---- <font color="#f00">今天老師點名</font>是一種條件(condition)。 當條件成立時,我才會做之後的事情: <font color="#0f0">去上課</font>。 --- <h2>In C/C++?</h2> ```cpp= if (condition) { do something; } ``` 當condition是true時,才能做大括號裡面的事情。 ---- ![flowchart](https://beginnersbook.com/wp-content/uploads/2017/09/If_else_flow_diagram_C.jpg) ---- <h2>Condition條件</h2> <h3>True or False 布林值(Boolean)</h3> >True: 非零數字 >False: 零 ---- ```cpp= if (true) { std::cout<<"1"; } if (1) { std::cout<<"2"; } if (0) { std::cout<<"3"; } if (-1) { std::cout<<"4"; } ``` 會印出什麼? <span>124<!-- .element: class="fragment" data-fragment-index="1" --></span> ---- <h2>關係判斷</h2> ![](https://i.imgur.com/snxAPzD.png) **注意**: 兩個東西相等是用==不是= ---- Examples ```cpp= if (5%3>=2) { cout<<"1"; } if (9/3==3) { cout<<"2"; } if (8*4!=32) { cout<<"3"; } ---- <h2>邏輯運算</h2> 當我要一次判斷多個條件? ---- # && AND ![](https://i.imgur.com/McR5fiN.png) ```cpp= if ((5>3) && (5<10)) { std::cout<<"5>3 and 5<10"; } if ((5>3) && (5<4)) { // will it be true? } ``` ---- # || OR ![](https://i.imgur.com/b6WERpU.png) ```cpp= if ((5>3) || (5<4)) { std::cout<"5>3 or 5<4"; } ``` ---- # ! NOT 相反過來! ```cpp= if (!(5<3)) { std::cout<<"5<3 is false, But we reverse it"; } ``` --- <h1>if-else 結構</h1> <h4><font color="#909">如果</font>下雨我就穿拖鞋,<font color="#f00">否則</font>我就穿布鞋。</h4> >代表不管颳風,大太陽,陰天,只要沒下雨,你都穿布鞋。 ---- ```cpp= if (下雨) { 穿拖鞋 } else { 穿布鞋 } ``` ---- 再更多判斷? ```cpp= if (禮拜一) { 穿紅色衣服 } else if (禮拜二) { 穿橙色衣服 } else if (禮拜三) { 穿黃色衣服 } else { 穿黑色衣服 } ``` ---- ![](https://i.imgur.com/O66Ph8h.png) ---- <h3>練習</h3> 輸入一個數字,判斷這個數字是不是2 或 3 或 5的倍數,如果是印出yes, 不是則印出no. >試試不同的寫法 ---- http://codepad.org/r8RZsEgs --- <h1>一起來debug!</h1> ---- ```cpp= int x = 3; if (x = 7) { std::cout<<"x 等於 7"; } std::cout<<x; ``` ---- ```cpp= int y = 10; if(5 < y < 9) { cout<<"y 在 5 跟 9 之間"; } ``` ---- fix? ```cpp= if(5 < y && y < 9) { cout<<"y 在 5 跟 9 之間"; } ``` --- ## OJ 練習時間 <a href="https://neoj.sprout.tw/problem/208/">季節判斷</a> ---- http://codepad.org/CTcbem3U
{"metaMigratedAt":"2023-06-15T05:04:18.366Z","metaMigratedFrom":"Content","title":"if-else","breaks":true,"contributors":"[{\"id\":\"8b6cb7cf-d748-4d26-bf43-fed5ee1f80a0\",\"add\":4407,\"del\":1945}]"}
    663 views