在實際程式設計中,我們經常面臨不只兩種選擇的情況。此時可以將 if...else 擴展為 if...else if 結構,其一般形式如下:
if (表達式1)
語句1;
else if (表達式2)
語句2;
else if (表達式3)
語句3;
else
語句4;
對應的流程圖展示了依序判斷各條件,一旦某條件為真即執行對應語句並跳出結構。
問題描述: 貨物價格在 1 萬元以上課徵 5%,5000 元以上 1 萬元以下課徵 3%,1000 元以上 5000 元以下課徵 2%,1000 元以下免稅。輸入貨物價格,計算並輸出稅金。
分析: 這是一個較複雜的分支結構程式設計,需注意避免重複課稅。假設貨物價格在 1 萬元以上,課稅應分段累計,各段採用不同稅率。
演算法:
#include <stdio.h>
int main() {
float price, tax = 0;
printf("input price: ");
scanf("%f", &price);
if (price >= 10000.0) {
tax = 0.05 * (price - 10000) + tax;
price = 10000;
}
if (price >= 5000.0) {
tax = 0.03 * (price - 5000) + tax;
price = 5000;
}
if (price >= 1000.00) {
tax = 0.02 * (price - 1000) + tax;
}
printf("thetax=%10.3f", tax);
return 0;
}
RUN
15000
thetax=480.000
輸入 15000,稅金計算為:(15000-10000)*0.05 + (10000-5000)*0.03 + (5000-1000)*0.02 = 250 + 150 + 80 = 480。