正文 第15章 選擇結構程序設計2(1 / 2)

if-else語句是更為常用的if語句。它用於實現雙分支結構,即當需要在兩組語句中選擇一組去執行時,常用if-else語句去實現。其一般形式為:

if(表達式)

語句1;

else

語句2;

其語義是:如果表達式的值為真,則執行語句1,否則執行語句2。注意到這裏是一種二選一的情況,即無論表達式的值是真還是假,在語句1和語句2中,總有一組要被執行。

說明:

(1)else語句是if-else結構的組成部分,但不能單獨使用,必須與if配對。

(2)語句1和語句2可以是單條語句,也可以是多條語句。如果是多條語句,則必須包含在一對花括號“{}”中,成為一個複合語句。

[例54]輸入一個英文字母,將大寫字母變成小寫字母,小寫字母變成大寫字母,並輸出。

voidmain()

charch;

printf("pleaseinputacharacter:");

scanf("%c",&ch);

if(ch>=a&&ch

b)

max=a;

else

max=b;

可用條件表達式寫為:

(a>b)?(max=a):(max=b);

max=(a>b)?a:b;

執行該語句的語義是:如果a>b為真,則把a的值賦予max,否則把b的值賦予max。

說明:

(1)條件運算符“?”和“:”是一對運算符,不能分開單獨使用,即在C語言中沒有單獨的“?”運算符和“:”運算符。考慮結合性時,也應將“?”和“:”看作一個整體。如當出現兩個條件運算符嵌套時:

a>b?a:b>c?b:c

等價於

a>b?a:(b>c?b:c)

(2)條件運算符的運算優先級低於關係運算符和算術運算符,但高於賦值運算符。

因此,

max=(a>b)?a:b

可以去掉括號而寫為:

max=a>b?a:b

[例55]求a,b,c三個數的最大值,並輸出結果。用條件運算符實現。