在执行时间或不同场景下,三元运算符是否比if else块更好?我看了很多链接,但都没有得到满意的答案。
发布于 2015-04-01 18:11:43
这不是更好也不是更坏。它是不同的,因为它是一个表达式。这意味着你可以用它来做初始化变量这样的事情:
int n = some_flag ? 0 : 42;
或者在其他需要表达式的地方使用它:
printf("Hello number %d", some_flag ? 0 : 42);
你不能用if-else来做到这一点。至于性能,在两者可以互换的情况下,不太可能有什么不同。
发布于 2015-04-01 18:15:24
在大多数现代编译器上,使用这两种编译器中的任何一种都没有区别。你唯一能关注的就是代码的可维护性。使用三元运算符可以得到的唯一区别是,根据某个表达式,您可以初始化一个常量变量。如下所示:
const int a = (x<y) ? y : x;
使用if else不能完成以下操作
https://stackoverflow.com/questions/29388072
复制相似问题