條件表達(dá)式運(yùn)算符有哪些
如果在條件語句中只執(zhí)行單個(gè)賦值語句,常可使用條件表達(dá)式來實(shí)現(xiàn)。由此,不但使程序簡(jiǎn)潔,也提高了運(yùn)行效率。
條件運(yùn)算符為 “?”和 “:”,是唯一的三目運(yùn)算符,即有三個(gè)參與運(yùn)算的量。
由條件運(yùn)算符組成條件表達(dá)式的一般形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2的值作為條件表達(dá)式的值;否則,以表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。其中 “?”和 “:”成對(duì)出現(xiàn)。
條件表達(dá)式通常用于賦值語句之中。
例如,條件語句:
if(a>b) max=a;
elsemax=b;
可用條件表達(dá)式寫為
max=(a>b)?a:b;
執(zhí)行該語句的語義是:如果a>b為真,則把a(bǔ)賦予max,否則把b賦予max。
使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn):
①條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值符。
例如:
max=(a>b)?a:b
可以去掉括號(hào),寫為
max=a>b?a:b
②條件運(yùn)算符 “?”和 “:”是一對(duì)運(yùn)算符,不能分開單獨(dú)使用。
③條件運(yùn)算符的結(jié)合方向是自右至左。
例如:
a>b?a:c>d?c:d
應(yīng)理解為
a>b?a:(c>d?c:d)
這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式3又是一個(gè)條件表達(dá)式。
【例3.39】練習(xí)使用條件運(yùn)算符。
main()
{inta,b,max;
printf("\ninputtwonumbers: ");
scanf("%d%d",&a,&b);
printf("max=%d",a>b?a:b);
}
此題的輸出結(jié)果和輸入的a,b的值是密切相關(guān)的,假設(shè)輸入的a,b的值為3和5,那么輸出結(jié)果為
inputtwonumbers:35
max=5
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。