if else if語句和多個並列的if語句的區別

2021-09-11 06:31:46 字數 1621 閱讀 4399

對於if-else-if語句和多個並列的if語句的區別,我就拿例項來給大家看看吧。

例題:輸入三個數a,b,c,按要求由小到大的順序輸出?

解析:我們假設a,b,c,已經是由小到大的順序排列的,我們需要將這三個數每2個比較一下大小關係。

如果a>b  則將a和b的位置互換

如果a>c  則將a和c的位置互換

如果b>c  則將b和c的位置互換

其中要注意的是,當2個變數互換值的時候,我們需要找乙個中間變數來進行交換,就好比我們要將2個瓶子裡面的水互換,我們還需要另外乙個空瓶子3,先將乙個瓶子1裡面的水倒進空瓶子3,再將瓶子2裡面的水倒進瓶子1裡面,瓶子3裡面的水倒進瓶子2,這樣就完成了互換。

解答:首先我們用if-else-if的形式

#include void main()

else if (a > c)

else if (b > c)

printf("%d

}

當我們輸入4,7,9時,程式輸出的結果是正確的

可是當我們輸入7,9,3時,程式卻出現了錯誤。

這是為什麼呢?我們再試試多個if語句並列的形式

#include void main()

if (a > c)

if (b > c)

printf("%d

}

這時候我們再輸入7,9,3時,程式的結果是正確的。

這就要談到他們的區別了,首先並列的多個if語句,程式是會將每個if語句都進行判斷,只有為真才會執行if語句後面的語句塊,當為假時,就會去執行下乙個if語句進行判斷,直到所有的if語句都判斷完。而if-else-if,就不是並列的關係了,它在一定情況下是不會將整個if語句都進行判斷了,當滿足乙個if語句判斷為真,那麼它執行完if語句後面的語句塊,就會不再執行後面的else-if語句了。所以在輸入7,9,3時,a>b不滿足,就會執行else後面的if語句進行判斷,此時a>c是滿足的,就會將a和c的值交換,交換後並不會去執行else後面的if語句進行判斷了,b和c的值就無法比較了,因為只有前面乙個if語句判斷為假才會執行else後面的if語句,繼續進行判斷,而並列的if語句就不同,都會將所有if語句進行判斷一遍。

例題:寫乙個程式完成以下功能:

1、輸入乙個分數score

2、score<60      輸出f

3、score>=60或者score<70     輸出d

4、score>=70或者score<80     輸出c

5、score>=80或者score<90     輸出b

6、score>=90或者score<=100     輸出a

#include void main()

else if (score >= 60 && score < 70)

else if (score >= 70 && score < 80)

else if (score >= 80 && score < 90)

else if (score >= 90 && score <= 100)

}

多個if判斷和if else if判斷的區別

拿二維矩陣來舉個例子 public class solution if target array rows cols if target array rows cols return false 這是使用多個if進行判斷的情況 public class solution else if target...

用State模式減少if elseif語句

注重這種模式的理解!我們在寫程式的過程中會遇到很多的邏輯判斷,一般都是用if else if.else if swith case等來做判斷,然後根據結果做一下分支處理,這樣寫雖然方便,但會增加以後的維護難度,假如有上百個if else if判斷,估計後期維護的人看到 頭都大了。像這種情況可以用st...

並列的選擇 switch語句

更多來自 4.2.2 並列的選擇 switch語句 其中,條件表示式就是要進行判斷的條件。switch語句首先計算條件表示式的值,這個表示式的值只能是整型或字元型。完成這個表示式的計算之後,程式開始在各個 case 分支中從上到下逐個匹配,查詢哪個常量值和這個表示式的值相等。如果找到相等的常量表示式...