直到现在我还在想条件运算符 int a = b == 2 ? x1 : x2;
始终可由 if/else 语句替换。
int a;
if (b == 2)
a = x1;
else
a = x2;
两者之间的选择总是一个品味问题。今天我正在处理一项任务,如果我可以写的话,引用将会很有用:
int& a;
if (b == 2)
a = x1;
else
a = x2;
这是不允许的,我尝试使用条件运算符初始化引用。这很有效,我开始意识到,条件运算符并不总是可以用 if/else 语句替换。
我的结论对吗?
最佳答案
你是对的。条件运算符是一个表达式,而if-else
是一个语句。可以用语句的地方可以用表达式,反之则不然。
这是一个很好的反例,当你遇到某人坚持你不应该,永远,永远,永远不要使用条件表达式时,这是一个很好的反例,因为 if-else
是“简单的”而条件是“太复杂了”。
当 C++ 获取 lambda 表达式时,您可以使用带有 if-else
的 lambda 代替条件。
关于c++ - 条件运算符总是可以被 if/else 替换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475113/