程式語言一 · 導覽投影片
→ / space 前進 ← 回 Esc 總覽 F 全螢幕if (s >= 90) printf("A\n");
else if (s >= 80) printf("B\n");
else printf("F\n");
從上到下,第一個成立就進去、後面全跳過。所以 嚴格的條件放上面、寬鬆的放下面。`if`/`else` 只走一條路。
if (x > 0)
printf("正\n");
printf("x=%d\n", x); // 不在 if 裡,永遠執行!
C 真假:0 是假(含 '\0'、NULL)、非零都是真。
int x = 5;
if (x = 0) ... else ... // x=0 是指派、回傳 0=假 → else,且 x 變 0!
要比較用 ==,-Wall 會幫你抓。
if (a)
if (b) printf("A\n");
else printf("B\n"); // 這 else 配誰?
else 配對最近的 if(配 if(b))。加大括號就沒有歧義。
| 寫法 | x = 50 |
|---|---|
三個獨立 if(各自檢查) | 「正」「大」都印 |
else if 鏈(互斥) | 只印一個 |
求最大值用獨立 if:max=a; if(b>max)max=b; if(c>max)max=c;
switch (n) {
case 1: printf("one\n"); break; // 別忘 break!
case 2: printf("two\n"); break;
default: printf("other\n");
}
每個 case 結尾要 break,否則貫穿繼續執行下一個 case。