3.1.8條件運(yùn)算符
條件運(yùn)算符是C++中的三目運(yùn)算符,也稱(chēng)為三元運(yùn)算符,它有三個(gè)操作數(shù):
操作數(shù)1 ? 操作數(shù)2 : 操作數(shù)3
條件運(yùn)算符又可以稱(chēng)為'?'號(hào)運(yùn)算符。操作數(shù)1一般是條件表達(dá)式,若表達(dá)式成立,即為真,則整個(gè)表達(dá)式的值為操作數(shù)2,否則為操作數(shù)3。表中的例子:若a>=b, 則例子的結(jié)果為a ,否則就為b。
例如、cout <<('A'<=ch && ch<='Z')? ('a'+ch-'A'):ch
結(jié)果是輸出一個(gè)小寫(xiě)字母。
如果第一個(gè)操作數(shù)非零,表達(dá)式的值是操作數(shù)2,否則表達(dá)式的值取操作數(shù)3。例如:
int m = 1, n = 2;
int min = (m < n ? m : n); // min 取 1
由于條件運(yùn)算本身是一個(gè)表達(dá)式,即條件表達(dá)式,它可以作為另一個(gè)條件表達(dá)式的操作數(shù)。也就是說(shuō),條件表達(dá)式是可以嵌套的。例如:
int m = 1, n = 2, p =3;
int min = (m < n ? (m < p ? m : p)
: (n < p ? n : p));
再看看其它的例子:
int a=10,b=20;
int min = (a>=b? a: b);
則min取值為20。
由條件運(yùn)算符組成的條件表達(dá)式,可以作為另一個(gè)條件表達(dá)式的操作數(shù),即條件表達(dá)式是可以嵌套的,如:
int a=10,b=20,c=30;
int min=(a>=b ?) (b<=c ? b: c): (a<=c ? a : c) // 結(jié)果為10。
條件運(yùn)算符是C++中的三目運(yùn)算符,也稱(chēng)為三元運(yùn)算符,它有三個(gè)操作數(shù):
操作數(shù)1 ? 操作數(shù)2 : 操作數(shù)3
條件運(yùn)算符又可以稱(chēng)為'?'號(hào)運(yùn)算符。操作數(shù)1一般是條件表達(dá)式,若表達(dá)式成立,即為真,則整個(gè)表達(dá)式的值為操作數(shù)2,否則為操作數(shù)3。表中的例子:若a>=b, 則例子的結(jié)果為a ,否則就為b。
例如、cout <<('A'<=ch && ch<='Z')? ('a'+ch-'A'):ch
結(jié)果是輸出一個(gè)小寫(xiě)字母。
如果第一個(gè)操作數(shù)非零,表達(dá)式的值是操作數(shù)2,否則表達(dá)式的值取操作數(shù)3。例如:
int m = 1, n = 2;
int min = (m < n ? m : n); // min 取 1
由于條件運(yùn)算本身是一個(gè)表達(dá)式,即條件表達(dá)式,它可以作為另一個(gè)條件表達(dá)式的操作數(shù)。也就是說(shuō),條件表達(dá)式是可以嵌套的。例如:
int m = 1, n = 2, p =3;
int min = (m < n ? (m < p ? m : p)
: (n < p ? n : p));
再看看其它的例子:
int a=10,b=20;
int min = (a>=b? a: b);
則min取值為20。
由條件運(yùn)算符組成的條件表達(dá)式,可以作為另一個(gè)條件表達(dá)式的操作數(shù),即條件表達(dá)式是可以嵌套的,如:
int a=10,b=20,c=30;
int min=(a>=b ?) (b<=c ? b: c): (a<=c ? a : c) // 結(jié)果為10。

