在C语言中,如果要根据某一条件是否成立来决定返回值,你会怎么写?我们可以用if-else语句实现这一功能,如:
if (condition)
return 1;
else
return 0;
用if-else语句来实现似乎已经足够简洁了,但还有另一种更为简洁的写法。这就要用到接下来要说的三目运算符。
三目运算符逻辑
三目运算符,又称条件运算符或三元运算符,它由“?”和“:”组成。为什么叫这个名字呢?因为该运算符有三个操作数,它的一般形式长这个样子:表达式1?表达式2:表达式3。举个例子,“(a>b)?a:b”就是一个三目运算符的应用实例,它的含义是:如果(a>b)条件为真,则条件表达式取值a,否则取值b。上面用if-else实现的代码如果改为用三目运算符实现,则代码长这样:
return (condition) ? 1 : 0 ;
三目运算符通常用于赋值语句中,比如用来比较两个数中的较大者并返回:
max = (a>b) ? a : b ; //如果a大于b,则max=a,否则max=b
三目运算符还可以嵌套使用,下面就是一个嵌套使用的例子。
val = (a>b) ? a : ((c>d) ? c : d) ;
表达式分析:如果a>b成立,则val=a,否则val=(c>d) ? c : d,这又是一个条件运算,继续展开,如果c>d,则val=c成立,否则val=d。
,