if/else
Wu-Jun Pei@Sprout2018
參考自2017 Winston's講義
if
每天都會用到的技能

決定著你人生(X程式(O的走向
日常生活中的if
1. 如果今天可能下雨,就要帶雨傘出門
2. 如果明天作業死線,就要熬夜爆肝趕作業
3. 如果體重過重,就要去減肥
......
4. 如果昨天吃咖哩,今天就不能吃
程式中的if
if (condition) {
statement
...
}小括號判斷
大括號做事
日常生活中的if
1. 如果今天可能下雨,就要帶雨傘出門
2. 如果明天作業死線,就要熬夜爆肝趕作業
if (今天可能下雨) {
帶雨傘出門
}
if (明天是作業死線) {
熬夜爆肝趕作業
}程式中的if
...
// notice the `==` below
if (1 + 1 == 2) {
std::cout << "1+1=2!"
<< std::endl;
}
...

from: Google Image
程式中的if
if (1) {
std::cout << "Welcome to Sprout" << std::endl;
}
if (0) {
std::cout << "You should not see this message QQ"
<< std::endl;
}常見的判斷式
(1 + 2 * 3) == 7
(1 + 2 * 3) != 9
a + b > c // Triangle Inequality
4 * a * b <= (a + b) * (a + b) // AM-GM Inequality常見的判斷式
// !(expressionA): NOT
// example
if (!expressionA) {
std::cout << "expressionA is not TRUE" << std::endl;
}
// !(true) -> false
// !(false) -> true更多的if
利用"&&"(AND)、"||"(OR)串接判斷式
善用AND及IF的特性
if (A && B) {
// 只有在A是True的時候才會判斷B
}
if (A || B) {
// 只有在A是False的時候才會判斷B
}更多的if
利用"&&"(AND)、"||"(OR)串接判斷式,請加括號
int A, B, C;
std::cin >> A >> B >> C;
if (A == 1 || B == 1 && C == 1) {
std::cout << "Expression (A || B && C) is TRUE" << std::endl;
}
if ((A == 1 || B == 1) && C == 1) {
std::cout << "Expression ((A || B) && C) is TRUE" << std::endl;
}更多的if
WHY?
上課練習:基本的if
1. 季節判斷
2. 思考上面的例子中,怎樣的A, B, C會導致兩個判斷式不會同時是True
更多的if
WHY?
練習2
A = 1, B = 0, C = 0
時,會炸裂
請養成好習慣,該加括號就加括號,不然會被自己雷(?
if/else
如果,不然
如果樂法有開,就去喝樂法
不然如果一芳水果茶有開,就去喝一芳水果茶
不然就喝水
if (樂法有開) {
喝樂法
} else if (一芳水果茶有開) {
喝一芳水果茶
} else {
喝水
}如果,不然
請善用if/else的特性,有助於美化程式碼(?
if (N % 2 == 0) {
std::cout << "Even!" << std::endl;
} else {
std::cout << "Odd!" << std::endl;
}if (N % 2 == 0) {
std::cout << "Even!" << std::endl;
}
if (N % 2 == 1) {
std::cout << "Odd!" << std::endl;
}如果,不然
請善用if/else的特性,有助於美化程式碼(?
if (score >= 90) {
std::cout << "You are a genius!" << std::endl;
}
if (90 > score && score >= 60) {
std::cout << "Not bad!" << std::endl;
}
if (score > 60) {
std::cout << "Keep trying!" << std::endl;
}如果,不然
請善用if/else的特性,有助於美化程式碼(?
if (score >= 90) {
std::cout << "You are a genius!" << std::endl;
} else if (score >= 60) {
std::cout << "Not bad!" << std::endl;
} else {
std::cout << "Keep trying!" << std::endl;
}如果,不然
剛剛那題
if (N <= 3) {
std::cout << "spring" << std::endl;
} else if (N <= 6) {
std::cout << "summer" << std::endl;
} else if (N <= 9) {
std::cout << "fall" << std::endl;
} else {
std::cout << "winter" << std::endl;
}nested if/else
怕大家不知道
對於複雜的狀況,我們可以利用巢狀 if 實作
if (condition_1) {
if (condition_1_1){
...
} else {
...
}
} else if (condition_2) {
if (condition_2_1) {
...
}
} else {
...
}利用if征服銀河系吧(X
[Sprout2018] if/else
By Wu-Jun Pei
[Sprout2018] if/else
- 382