在 Java 中,三元运算符是否比“if”条件快

2022-08-31 08:39:12

我容易患上“if-conditional syndrome”,这意味着我倾向于一直使用if条件。我很少使用三元运算符。例如:

//I like to do this:
int a;
if (i == 0)
{
    a = 10;
}
else
{
    a = 5;
}

//When I could do this:
int a = (i == 0) ? 10:5;

我使用哪个重要吗?哪个更快?是否有任何明显的性能差异?尽可能使用最短的代码是更好的做法吗?


答案 1

我使用哪个重要吗?

是的!第二种可读性要强得多。您正在交易一行,简明扼要地表达了您想要的东西,而不是九行有效的混乱。

哪个更快?

也不。

尽可能使用最短的代码是更好的做法吗?

不是“只要有可能”,而是只要有可能,没有不利影响。较短的代码至少可能更具可读性,因为它侧重于相关部分而不是附带效果(“样板代码”)。


答案 2

如果有任何性能差异(我对此表示怀疑),它将可以忽略不计。专注于编写最简单、最易读的代码。

话虽如此,尝试克服你对条件运算符的厌恶 - 虽然过度使用它肯定是可能的,但在某些情况下它可能非常有用。在你给出的具体例子中,我肯定会使用条件运算符。


推荐