Exp1 ? Exp2 : Exp3;
在这里,计算Exp1,Exp2和EXP3是表达式。注意冒号使用和放置。 a的值?表达是确定这样的:计算Exp1评估计算。如果这是真的,那么Exp2后进行评估计算,并成为整个值。?表达式。如果计算Exp1是假的,那么EXP3评价和它的值变为表达式的值。
? 称为三元运算,因为它需要三个操作数,并且可以用来代替if-else语句,它具有下列形式:
if(condition){ var = X; }else{ var = Y; }
例如,请考虑下面的代码:
if(y < 10){ var = 30; }else{ var = 40; }
上面的代码可以写成这样:
var = (y < 10) ? 30 : 40;
这里,x被赋值为30,如果y小于10,如果它不是则赋值为40。可以试试下面的例子:
#include <iostream> using namespace std; int main () { // Local variable declaration: int x, y = 10; x = (y < 10) ? 30 : 40; cout << "value of x: " << x << endl; return 0; }
当上述代码被编译和执行时,它产生了以下结果:
value of x: 40