1. 什麼是if-else條件語句?¶
在編程中,我們經常需要根據不同的情況執行不同的操作。比如,判斷考試分數是否及格,決定是否輸出“合格”或“不合格”;或者判斷天氣是否下雨,決定是否提醒帶傘。這時候,就需要用到條件語句——最基礎的就是 if-else 語句。
if-else 的核心思想是:如果某個條件成立,就執行一段代碼;否則,執行另一段代碼。它讓程序擁有了“決策能力”,不再是簡單的順序執行。
2. if-else的基本語法¶
C++中 if-else 的語法結構有以下幾種常見形式:
2.1 單條件判斷(if)¶
if (條件表達式) {
// 當條件表達式爲 true 時執行的代碼塊
}
- 條件表達式:必須是一個能返回布爾值(
true或false)的表達式,比如score >= 60(成績是否及格)。 - 代碼塊:用大括號
{}包裹的一段代碼,當條件成立時執行。如果只有一條語句,大括號可以省略,但建議養成寫大括號的習慣,避免邏輯錯誤。
2.2 二選一判斷(if-else)¶
if (條件表達式) {
// 條件成立時執行
} else {
// 條件不成立時執行
}
- 如果條件表達式爲
true,執行if後的代碼塊;否則,執行else後的代碼塊。
2.3 多條件判斷(else if)¶
當需要判斷多個條件時,用 else if 連接後續條件,避免嵌套 if 導致代碼混亂:
if (條件1) {
// 條件1成立時執行
} else if (條件2) {
// 條件1不成立,但條件2成立時執行
} else if (條件3) {
// 條件1、2不成立,但條件3成立時執行
} else {
// 所有條件都不成立時執行
}
- 注意:條件判斷是從上到下依次執行的,一旦某個條件成立,後面的條件將不再判斷。因此,條件範圍應從大到小(比如先判斷成績≥90,再判斷80-89,避免邏輯錯誤)。
3. 實戰案例1:判斷奇偶數¶
需求:輸入一個整數,判斷它是奇數還是偶數。
思路:
任何整數除以2的餘數爲0則是偶數,否則是奇數。用 % 運算符(取餘)判斷:num % 2 == 0 時爲偶數。
代碼示例:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "請輸入一個整數:";
cin >> num; // 讀取用戶輸入的整數
// 判斷是否爲偶數
if (num % 2 == 0) {
cout << num << " 是偶數" << endl;
} else {
cout << num << " 是奇數" << endl;
}
return 0;
}
運行測試:
輸入 7,輸出:7 是奇數;輸入 10,輸出:10 是偶數。
4. 實戰案例2:判斷成績等級¶
需求:輸入考試分數(0-100),輸出對應的等級(A/B/C/D/F)。
規則:90-100分 → A;80-89分 → B;70-79分 → C;60-69分 → D;<60分 → F。
思路:
用 else if 依次判斷分數範圍,從高分到低分排列條件,避免錯誤歸類。
代碼示例:
#include <iostream>
using namespace std;
int main() {
int score;
cout << "請輸入考試分數(0-100):";
cin >> score;
// 判斷分數是否合法(0-100)
if (score < 0 || score > 100) {
cout << "分數不合法!請輸入0-100之間的整數。" << endl;
} else if (score >= 90) { // 先判斷最高分數段
cout << "成績等級:A" << endl;
} else if (score >= 80) { // 次高分段
cout << "成績等級:B" << endl;
} else if (score >= 70) {
cout << "成績等級:C" << endl;
} else if (score >= 60) {
cout << "成績等級:D" << endl;
} else { // 最後處理不及格情況
cout << "成績等級:F" << endl;
}
return 0;
}
運行測試:
輸入 95 → 輸出 A;輸入 75 → 輸出 C;輸入 55 → 輸出 F;輸入 105 → 輸出“分數不合法”。
5. 注意事項與常見錯誤¶
-
條件表達式必須是布爾值
比如if (a = 5)是錯誤的(賦值運算符返回值爲變量本身,不是布爾值),正確應爲if (a == 5)(==是比較運算符,返回true/false)。 -
else if的順序
必須從大到小排列條件,否則會導致邏輯錯誤。例如,判斷分數時,若先寫score >=80,則95會被誤判爲B(而非A)。 -
大括號的使用
即使只有一條語句,建議加上大括號。例如:
if (num % 2 == 0)
cout << "偶數"; // 不加大括號也能執行,但容易混淆
else
cout << "奇數";
但如果後續要擴展多條語句,不加大括號會報錯,因此養成寫大括號的習慣更安全。
- 條件表達式的範圍
避免使用if (num = 0)這種可能被誤讀的寫法,可讀性差且易出錯。
6. 總結¶
if-else 是C++中最基礎的條件控制語句,通過它可以讓程序根據不同條件執行不同邏輯。核心要點:
- 單條件用 if,二選一用 if-else,多條件用 else if。
- 注意條件判斷的順序(從大到小)和表達式的正確性。
- 通過實戰案例(如奇偶數、成績等級)熟悉語法,培養“邏輯決策”思維。
掌握 if-else 後,後續可以學習更復雜的嵌套條件(如 if 內再包含 if-else),或結合 switch 語句處理更多分支場景。