選擇
讓程式走兩條不同的路。 · ⏱ 約 25 分鐘
你會學到三件事
if 怎麼把一段程式變成有條件的
else 是「其餘的情況」
- 大括號圈起來的東西叫區塊,而它是一個整體
開始之前
到目前為止,程式由上往下每一行都會跑。
這一課開始,有些行會被跳過——而哪些被跳過取決於資料。
這是程式第一次「自己做決定」。
上一課的 bool 就是為了這一課。
一、if
int score = 75;
if (score >= 60) {
cout << "及格" << endl;
}
讀法:「如果 score >= 60 成立,就做大括號裡面的事。」
不成立的話,大括號裡面整段跳過,程式從大括號後面繼續。
三個部位:
if ( 條件 ) { 要做的事 }
↑ ↑
一個 bool 一個【區塊】——大括號圈起來的一整段
⚠️ if 後面沒有分號。 if (x) ; 是合法的,而它的意思是
「條件成立就做——什麼都不做」,後面那個大括號會變成無條件執行。
這個錯不會報錯,只會讓程式行為變得莫名其妙。
二、else
if (score >= 60) {
cout << "及格" << endl;
} else {
cout << "不及格" << endl;
}
else 沒有條件——它就是「上面那個不成立的時候」。
兩條路一定會走一條,而且只會走一條。
三、區塊
大括號 { } 圈起來的一整段叫區塊。它裡面可以有很多行:
if (score >= 60) {
cout << "及格" << endl;
cout << "恭喜" << endl;
}
只有一行的時候,大括號可以省略:
if (score >= 60) cout << "及格" << endl;
⚠️ 而建議永遠不要省。
省掉之後想加第二行,很容易變成這樣:
if (score >= 60)
cout << "及格" << endl;
cout << "恭喜" << endl; // ← 這一行【無條件】會跑
縮排看起來在裡面,而 if 只管到第一個分號為止。
這是一個縮排會騙你的錯,而它在 Python 裡不會發生(那一課會再提)。
完成的樣子
int main() {
int score = 75;
if (score >= 60) {
cout << "及格" << endl;
} else {
cout << "不及格" << endl;
}
return 0;
}
換你了
改成三段:>= 90 印「優等」、>= 60 印「及格」、其餘印「不及格」。
提示:else 後面可以直接再接一個 if——
} else if (score >= 60) {
這一課你做了什麼
- 你用
if 讓一段程式變成有條件的
- 你用
else 處理了其餘的情況
- 你知道大括號圈起來的是一個整體,而省略它有代價
如果卡住了
| 你看到 |
多半是因為 |
| 兩句都印出來了 |
第二句沒在大括號裡(或大括號省掉了) |
| 條件明明成立卻沒進去 |
== 寫成 = 了,或比較方向反了 |
if (x); 行為很怪 |
多了一個分號。if 後面不加分號 |
| 「優等」和「及格」都印了 |
第二段用了 if 而不是 else if——那是兩個獨立的判斷 |
在編輯器打開這一課 →