【发布时间】:2014-09-23 17:51:39
【问题描述】:
是否可以使用“?”来编写等效的复合“if”语句C中的运算符?我想写一个“if - else if - else”语句,想知道我是否可以使用“?”运算符。
我相信使用“?”的常规语法会像
foo = (bar == 42) ? answerToEverything : useless;
如果我想在一行中使用“?”重写以下语句接线员,我可以这样做吗?怎么样?
if(bar == 42) {
foo = answerToEverything;
}
else if(bar == 23) {
foo = bigMike;
}
else foo = useless;
【问题讨论】:
-
(bar==42) ? foo = answerToEverything : (bar==23) ? foo = bigMike : foo = useless -
我认为嵌套三元运算符有点丑。你所拥有的一切都很好 IMO
-
我也同意@Ben。您使用条件运算符(通常令人困惑地命名为“三元运算符”)编写它的目标是什么?
-
你为什么不直接使用
switch声明? -
我会说“为什么要重写它?”三元运算符机制在某些情况下很方便,因为它隐藏了您并不真正需要担心的细节,但是在使用它的任何复杂性的情况下使用它太容易导致混乱和错误。拒绝吧!”到三元。
标签: c++ c if-statement syntax ternary-operator