条件运算符
在编写程序时往往会遇到条件判断,例如判断a>b,当a>b成立时执行某一个操作,当a>b不成立时执行另一个操作,这种情况下就需要用到条件运算符,C语言提供了一个条件运算符:?:,其语法格式如下所示:
表达式1 ? 表达式2 : 表达式3
上述表达式由条件运算符连接起来,称为条件表达式。在条件表达式中,先计算表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个条件表达式的取值。
条件表达式就是对条件进行判断,根据条件判断结果执行不同的操作,示例代码如下所示:
int a = 6, b = 3;
a > b ? a * b : a + b; //条件表达式
上述条件表达式中,判断a>b是否为真,若为真,则执行ab操作,将其结果作为整个条件表达式的结果,ab结果为18,因此,条件表达式结果为18。
由于需要三个表达式(数据)参与运算,条件运算符又称为三目运算符。
注意:
1、 条件运算符“?”和“:”是一对运算符,不能分开单独使用。
2、 条件运算符的优先级低于关系运算符与算术运算符,但高于赋值运算符。
3、条件运算符可以进行嵌套,结合方向自右向左。例如a>b?a:c>d?c:d应该理解为a>b?a:(c>d?c:d),这也是条件运算符的嵌套情形,即其中的表达式3又是一个条件表达式。*