(5) if...elif

如果在先前的判斷條件不成立時又有另一個判斷式,可以使用if...elif指令。

程式:
#單價、數量
price=120
amount=50

#計算總金額
total = price * amount

#總金額至少2,000元可打8折, 
#若不足2,000元, 但至少1,000元可打9折,
#若不足1,000元, 但至少500元可打95折.
if total >= 2000:
    total = int(total*0.8)  #打8折
elif total >= 1000:
    total = int(total*0.9)  #打9折
elif total >= 500:
    total = int(total*0.95)  #打95折

#顯示應付金額
print(f'{total:,}元')

以上程式的流程圖如下(僅列出判斷式):

在上的例子中,第一層的if指令先判斷總金額是否大於等於2,000元?若是,程式流程會往右邊走,計算打八折之後的金額;若不是,就向左走進行第二層的elif判斷是否大於等於1,000元?若是,計算打九折之後的金額;若不是,就再向左走進行第三層的elif判斷是否大於等於500元?若是,程式流程會往右邊走,計算打九五折之後的金額;若不是,就離開if敘述。

自主練習

  1. 某個遊樂場的大人入場門票800元,小孩500元。請輸入大人人數及小孩人數,計算總金額。 如果總金額至少3,000元,門票可打8折; 如果不足3,000元但至少2,000元,可打9折; 如果不足2,000元但至少1,000元,可打95折; 如果不足1000元,可扣除50元。 請完成以上判斷式。

Last updated