三元运算符是否优于if else在执行时间或不同场景下阻塞?我已经通过了许多链接,但没有得到满意的答案。
答案 0 :(得分:7)
不是更好或更糟。它是不同的,因为它是一个表达式。这意味着你可以用它来初始化变量:
int n = some_flag ? 0 : 42;
或在需要表达式的其他地方使用它:
printf("Hello number %d", some_flag ? 0 : 42);
你不能用if-else做到这一点。至于性能,在两者可互换的情况下,极不可能产生影响。
答案 1 :(得分:0)
在大多数现代编译器中,如果你使用两者中的任何一个,它就没有区别。您可以专注的唯一事情是代码的可维护性。使用三元运算符可以获得的唯一区别是,根据某些表达式,您可以初始化常量变量。像这样:
const int a = (x<y) ? y : x;
使用if else
无法完成