是否可以在条件表达式中使用另一个条件表达式?
Is it possible to use another conditional expression inside a conditional expression?
我想知道 C 中的“?:”运算符。可以像这样在另一个条件运算符中使用条件运算符吗?
int a = 0;
a == 1?a += 1:a == 0?a += 2:a = 3;
这是一个非常糟糕的例子,但我希望你能理解我想问的问题。
是的,但您必须像这样使用括号:
a == 1?a += 1:(a == 0?a += 2:a = 3);
当然可以,像这样:
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;
阅读和理解起来更清晰。
我想知道 C 中的“?:”运算符。可以像这样在另一个条件运算符中使用条件运算符吗?
int a = 0;
a == 1?a += 1:a == 0?a += 2:a = 3;
这是一个非常糟糕的例子,但我希望你能理解我想问的问题。
是的,但您必须像这样使用括号:
a == 1?a += 1:(a == 0?a += 2:a = 3);
当然可以,像这样:
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;
阅读和理解起来更清晰。