条件运算符(conditional operator)有时候也称为三元运算符(ternary operator,或者trinary operator),因为它是唯一需要 3 个操作数的运算符,条件表达式的一般形式为:
条件 ? 表达式1 : 表达式2
条件运算操作会首先计算条件,然后根据条件的计算结果,再决定要计算两个表达式中的哪一个。条件表达式通常用于赋值语句之中。
其求值规则为:
如果条件表达式为真,整个表达式的值为表达式1的值;
如果条件表达式为假,整个表达式的值为表达式2的值。
条件运算符代表了在程序流中的条件式跳转,因此,有时候可以与 if-else 语句相互替代。
比如:如果我们希望获得两个数中最大的一个,我们可以使用if语句:
if(a>b){ max = a; }else{ max = b; }
上面所描述的if else语句等价于:
max = (a>b)?a:b;
该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max。大家可以认为条件运算符是一种简写的if else,完全可以用if else来替换。
如果你正在学习C/C++遇到瓶颈,迷茫,困惑,那么不妨加入