ㄎㄧㄤ ㄎㄧㄤ ㄎㄧㄤ! 今天來教各位的是...英文課 !if
中文意思 : 如果;else
中文意思 : 其他,別的,否則。結束,下課 !
修但幾勒 開玩笑,現在才正要開始 !
if(<condition 1>){
<statement>
}
else if(<condition 2>) {
<statement>
}
else {
<statement>
}
觸發 if
、else
的關鍵就是判斷式,判斷式的結果只有對 (True) 或錯 (False)
建構判斷式的方式,就和數學中的不等式一樣,可以用 ==
、!=
、>
、<
、>=
、<=
來實現。
比較特別的是相等的符號是兩個等號 ==
! 為了要區別賦值的符號 =
另外比較特殊的還有 !=
是不等於的意思 !
通常判斷式還會再搭配 &&
(and)、||
(or)、!
(not)
要注意的是 這三個符號是邏輯運算子,有別於上一篇提到的位元運算子 ~
下面是 if
、else
的流程圖:
一組 if、else 有以下的規定要特別留意
if
,但是 else
、else if
可根據情況不使用。else if
可以有多組,但 else
最多只有一組!if
、else
只有一個程式區塊會被執行,如果先進 if
(代表 if
判斷為成立) 就不會進其他的條件判斷 (else if
或 else
)那直接舉例給大家看!
題目 : 假設我們有一個等第關係如下,需要設計一個程式來判斷分數對應的等第。
A | B | C | D | E |
---|---|---|---|---|
>= 90 | 89 ~ 80 | 79 ~ 70 | 69 ~ 60 | <= 59 |
#include <stdio.h>
int main(){
int score;
scanf("%d",&score);
if(score >= 90)
printf("This score %d is A!\n",score);
else if(score >= 80)
printf("This score %d is B!\n",score);
else if(score >= 70)
printf("This score %d is C!\n",score);
else if(score >= 60)
printf("This score %d is D!\n",score);
else
printf("This score %d is E!\n",score);
}
補充 :
- 像是介在 89 ~ 80 這個區間,就可以表示成
else if(score >= 80)
因為它沒進去第一個if
代表輸進來的分數已經是 < 90 了 !- 如果將
else if
改成if
會發生甚麼事 ? 因為一組if
、else
只有一個程式區塊會被執行。假設分數是 100 這樣的話,它就符合了前面四項,等於 100 的等第是 A、B、C、D,那就不合理了 !- 89 ~ 80 這個區間,可以表示成
89 >= score >= 80
嗎 ? 大錯特錯 ! 這是一個很致命的錯誤 ! 假設現在的分數是 85,那程式會先判斷 89 >= 85 結果為 True (所以是 1),接著 1 >= 80 嗎 ? 不,所以 85分在這個判斷會是 False !
額外的小分享 : 大家在忙碌之餘,也要好好運動喔! Aqyu 今天可是打了將近四個小時的排球呢 (也可能只有剛開學,才有這樣的時間可以玩...) 總之有個健康的身體才能繼續生活啊 !