是否可以在条件表达式中使用另一个条件表达式?

时间:2017-03-20 10:17:44

标签: c conditional-operator

我想知道C中的“?:”运算符。可以在另一个条件运算符中使用条件运算符吗?

int a = 0;
a == 1?a += 1:a == 0?a += 2:a = 3;

这是一个非常糟糕的例子,但我希望你能理解我想要问的问题。

2 个答案:

答案 0 :(得分:1)

当然你可以这样:

int a = 0;
a == 1?(a += 1):((a == 0)?(a += 2):(a = 3));

与写作相同:

int a = 0;
if (a == 1)
    a += 1;
else
    if (a == 0)
        a += 2;
    else 
        a = 3;

更清楚易读和理解。

答案 1 :(得分:0)

是的,但您必须使用括号,如下:

a == 1?a += 1:(a == 0?a += 2:a = 3);