如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。
条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:
表达式1? 表达式2:表达式3
其求值规则: 如果表达式1成立,则用表达式2的值作为条件表达式的值否则用表达式3的值作为条件表达式的值
例如:
if( a>b ) max=a;
else if( a<=b ) max=b;
可用三目运算符表示: max = a>b? a:b;
上述例子里表达式1 有2个常量(或变量)进行比较,也有只有一个常量(或变量)的表达形式, 如:
max = (a? 4:1); --------> if( a!=0 ) max =4; else if( a==0 ) max = 1
使用条件表达式时还要注意以下几点
1.条件运算符优先级低于关系运算符和算术运算符,但高于赋值符。 如:max = (a>b?)4:1 可写成 max = a>b?4:1
2. 三目运算符中的?和:是一对,不可分开使用
3.运算符的结合方向是自右向左
a>b?a:c>d?c:d 可理解成 a>b?a:(c>d?c:d)