###### tags: `sprout`
# if-else
<!-- Put the link to this slide here so people can follow -->
slide: https://hackmd.io/@i2y3z9dITSa_Q_7V7h-AoA/HJwSCKmSU
--廖凰汝--
---
每天,我們都在面臨一連串的選擇

----
<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時,才能做大括號裡面的事情。
----

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

**注意**: 兩個東西相等是用==不是=
----
Examples
```cpp=
if (5%3>=2) {
cout<<"1";
}
if (9/3==3) {
cout<<"2";
}
if (8*4!=32) {
cout<<"3";
}
----
<h2>邏輯運算</h2>
當我要一次判斷多個條件?
----
# && AND

```cpp=
if ((5>3) && (5<10)) {
std::cout<<"5>3 and 5<10";
}
if ((5>3) && (5<4)) {
// will it be true?
}
```
----
# || OR

```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 {
穿黑色衣服
}
```
----

----
<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}]"}