三目運算符疟暖,計算機c語言的重要組成部分紊搪。條件運算符是唯一有3個操作數(shù)的運算符蜜葱,所以有時又稱為三元運算符
如果在條件語句中,只執(zhí)行單個的賦值語句時耀石, 城6冢可使用條件表達式來實現(xiàn)。不但使程序簡潔娶牌,也提高了運行效率奔浅。
條件運算符為?和:,它是一個三目運算符诗良,即有三個參與運算的量汹桦。由條件運算符組成條件表達式的一般形式為:
表達式1? 表達式2: 表達式3
其求值規(guī)則為:如果表達式1的值為真,則以表達式2 的值作為條件表達式的值鉴裹,否則以表達式2的值作為整個條件表達式的值舞骆。 條件表達式通常用于賦值語句之中钥弯。
例如條件語句:
int a, b,max;? ? puts("輸入兩個整數(shù)。"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?printf("整數(shù)a:"); ? ? ? scanf("%d",&a); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?printf("整數(shù)b:"); ? ? ? scanf("%d",&b); ?
if (a > b) ?max = a;
else ? max = b督禽;
或者
if (a > b) {
max = a;
}else{
max = b;
}
printf("較大的數(shù)%d\n",max);
可用條件表達式寫為 max=(a>b)?a:b; 執(zhí)行該語句的語義是:如a>b為真脆霎,則把a賦予max,否則把b 賦予max狈惫。
使用條件表達式時睛蛛,還應注意以下幾點:
1. 條件運算符的運算優(yōu)先級低于關(guān)系運算符和算術(shù)運算符,但高于賦值符胧谈。因此 max=(a>b)?a:b可以去掉括號而寫為 max=a>b?a:b
2. 條件運算符?和:是一對運算符忆肾,不能分開單獨使用。
3. 條件運算符的結(jié)合方向是自右至左菱肖。