【发布时间】:2013-02-13 08:48:03
【问题描述】:
我有一个程序流程如下:
if(a)
{
if((a > b) || (a > c))
{
doSomething();
}
statementX;
statementY;
}
我需要把它翻译成条件表达式,这就是我所做的:
(a) ? (((a > b) || (a > c)) ? doSomething() : something_else) : something_else;
在哪里插入语句 statementX、statementY?由于在这两种可能的情况下都需要执行,我真的找不到办法。
【问题讨论】:
-
为什么?我觉得它的第一种形式更具可读性!..
-
您的
ifs 没有elses,因此为此使用三元运算符并不适合该问题。 -
尽管我已经为三元运算符的简洁特性做好了充分准备,但我很少使用它——正如 Joe 所说,它会限制可读性。
-
另外,你不能把语句当作表达式,所以你甚至会得到一个编译器错误。
-
谁给你这样的“任务”?
标签: c if-statement ternary-operator