第04章選擇結構程式設計

2021-03-05 09:14:21 字數 2355 閱讀 9194

4.3 if語句

用if語句可以構成分支結構,它根據給定的條件進行判斷,以決定執行某個分支程式段,c語言中if語句有三種基本形式。

選擇:一、if語句的三種形式

1. 第一種形式為基本形式:if --- 單重選擇

if(表示式)語句

其語義是:如果表示式為真,則執行其後的語句,否則不執行該語句,其過程可表示為下圖

表示式位置:型別多樣的(最常見:關係表示式和邏輯表示式)

eg:if(3) printf(「good luck!」); 3為常量表示式,非0為真,執行接下來語句

【例4.3.1】

#include

main()

分析:假設最大值為a,如果a注意:if語句的有效執行語句是接下來的第一句;如果有效語句在兩句以上,必須加{}作為復合語句執行

2. 第二種形式為基本形式:if-else --- 雙重選擇

if(表示式)語句1;

else 語句2:;

其語義是:如果表示式的值為真,則執行語句1,否則執行語句2,其過程可表示為下圖

雙重選擇語句必定執行乙個語句

【例4.3.2】

#include

main()

輸入兩個整數,輸出其中的最大數

改用if-else語句判斷a,b的大小,若a大,則輸出a,否則輸出b

注意:有且必須執行一條語句

3. 第三種形式為基本形式:if-else-if --- 多重選擇

前兩種形式的if語句一般都用於兩個分支的情況;當有多個分支時,可採用if-else-if語句,一般形式為:

if(表示式1)語句1;

else if(表示式2)語句2

else if(表示式3)語句3:;

...else if(表示式m)語句m:;

else 語句n;

先判斷表示式1是否成立,若成立,執行語句1,不成立,判斷下乙個if,判斷第二個if是假,則執行語句3,一直到else;如果第乙個表示式為真,則以下不執行,直接到最後,即多重選擇最多執行一條

其語義:依次判斷表示式的值,當出現某個值為真,則執行其對應的語句,然後跳到整個if語句外繼續執行程式,如果所有表示式均為假,則執行語句n;然後繼續執行後續程式。if-else-if

【例4.3.3】

#include

main()

例題分析:本例題要求判別鍵盤輸入的字元型別,可以根據輸入字元的ascii碼值來進行判別型別;由ascii碼表可知ascii值小於32為控制字元;在『0』和『9』之間的為數字;在『a』和『z』之間的為大寫字母;在『a』和『z』之間的為小寫字母,其餘則為其它符號。這是乙個多分支選擇的問題,用if-else-if語句程式設計,判斷輸入字元ascii碼所在範圍,分別給出不同的輸出,如輸入為g,輸出顯示它為小寫字母。

注意:最多執行一條語句,如果前面全不執行,結尾無else,則不執行語句

4. 在使用if語句中還應該注意以下問題

1) 在三種形式的if語句中,在if關鍵字之後均為表示式;該表示式通常是邏輯表示式或關係表示式,但也可以是其它表示式,如賦值表示式,甚至也可以是個變數

eg:if(a=5) 語句; 不是如果a=5,此處是賦值語句真個結果是5 相當於if(5) 非0為真

if(b) 語句;

都是允許的,只要表示式的值為非0,即為「真」

如在:if(a=5) ...;

2) 在if語句中,條件判斷表示式必須用括號括起來,在語句之後必須加分號;

3) 在if語句的三種形式中,所有的語句應為單個語句,如果要想在滿足條件時執行一組(多個)語句,則必須把這一組語句用{}括起來組成乙個復合語句,但要注意的是在}後不能加分號

eg: if(a>b)

a++;

b++;}

else

a=0;

b=10;}

二、if語句的巢狀

當if語句中的執行語句又是if語句時,則構成了if語句巢狀的情形

其一般形式可表示如下:

if(表示式)

if語句;

或者為if(表示式)

if語句;

else

if語句;

例如:if(表示式1)

if(表示式2)

語句1;

else

語句2;

其中的else究竟與哪乙個if配對呢?

對的錯的

為了避免二義性,c語言規定,[, , , ],因此對上述例子應該按前一種情況理解

【例4.3.3】

#include

main()

比較兩個數的大小關係。

本例中用了if語句的巢狀結構,採用巢狀結構實質上是為了進行多分支選擇,實際上有三種選擇,即a>b、a【例4.3.3】

#include

main()

04選擇結構程式設計

關係運算實際上是 比較運算 將兩個值進行比較,判斷其比較的結果是否符合給定的條件。c 語言提供6種關係運算子 小於 小於或等於 大於 大於或等於 等於 不等於 優先次序 前4種關係運算子優先級別相同,後兩種也相同。前4種高於後2種。關係運算子的優先順序低於算術運算子。關係運算子的優先順序高於賦值運算...

C語言第4章選擇結構程式設計

4.1 什麼是算術運算?什麼是關係運算?什麼是邏輯運算?答 略4.2 c語言中如何表示 真 和 假 系統如何判斷乙個量的 真 和 假 答 在c語言中,用1和0表示真和假的值 判斷乙個邏輯表示式的值時,非0代表真,0代表假。比如3 4為真,因為3是非0,4也是非0,真與真,結果還是真,而3 4的值為1...

第4章C語言選擇結構程式設計

本章知識點要求 1.用if語句實現選擇結構 2.用switch語句實現多分支選擇結構 3.選擇結構的巢狀 4.c語言支援兩種條件語句 if和switch.此外,條件運算子 在某些情況下可以替換if.引言 c語言選擇結構程式設計結構的執行過程是通過條件判斷來決定程式的下一步 那麼,它主要是通過條件表示...