程式三大基本結構中,選擇結構特徵:流程由多路分支組成,執行時依條件僅一條分支被選中執行,其餘跳過。
C 提供兩種分支語句:
if:雙向選擇(二選一)switch:多向選擇(多選一)
if (運算式)
敘述;
語意:運算式為真(非 0)執行敘述,為假(0)跳過。
if (運算式)
敘述1;
else
敘述2;
語意:真執行敘述1,假執行敘述2。兩者必有一個且僅有一個被執行。
main() {
int a, b, c, min;
printf("input a,b,c:");
scanf("%d%d%d", &a, &b, &c);
if (a < b)
min = a;
else
min = b;
if (c < min)
min = c;
printf("The result is %d\n", min);
}
執行範例:輸入 3 5 2 → 輸出 2
適當縮排(通常 4 空格)使結構層次一目了然,配合註解、空行,從一開始養成良好編碼風格。
定義:一對大括號括起的一或多個敘述,邏輯上視為單一敘述。
語法:
{
敘述1;
敘述2;
...
敘述n;
}
廣泛用於 if、else、迴圈主體等需多敘述處。
#include
main() {
float x, y, t;
printf("input x,y:");
scanf("%f%f", &x, &y);
if (x < y) {
t = x;
x = y;
y = t;
}
printf("result:%7.3f\t%7.3f\n", x, y);
}
執行結果:輸入 43.2 56.7 → 輸出 56.700 43.200
t=x; x=y; y=t;if 條件成立時執行三條敘述%7.3f:寬度 7、小數 3 位,對齊美觀後續章節將涵蓋:
else 配對規則(最近未配對原則)if 兩基本形式:單向、雙向(if-else)if/if-else 整體視為單一敘述