gpt4 book ai didi

java - 使用带有逻辑运算符的 if 语句有什么好处吗?

转载 作者:行者123 更新时间:2023-11-30 18:57:55 24 4
gpt4 key购买 nike

我知道if语句可以以多种方式使用,例如带有逻辑运算符的if语句、if...else嵌套if 语句 等等

使用 &&、|| 等逻辑运算符时确认很多条件,那么代码大小会比使用多个嵌套 if 语句时更小。使用带有条件运算符的 if 语句是否还有其他好处(运行时、调试、编译时好处等)?

最佳答案

与使用 if 语句相比,使用条件运算符没有性能优势。如果两个版本的代码等效,则没有理由期望 JIT 编译器不会生成具有相同性能的代码。

与以分钟为单位的(完整)构建时间相比,编译时性能问题无关紧要……亚毫秒级差异。

真正的区别在于可读性。某些计算可以使用条件表达式更简洁地表达,并且在某些情况下使代码更具可读性。可读性是相关的,因为它会影响您和其他人调试和维护代码的能力。

然而,可读性取决于代码和读者的熟练程度。因此,很难对使用“高级”结构的可读性效果做出概括。

<小时/>

你举这个例子:

if (condition 1) {
if (condition 2) {
if (Condition 3){
statement 1;
} else nothing;
} else nothing;
} else statement 3;

versus

if (condition 1 && condition 2 && condition 3) {
statement 1;
} else statement 2;

首先,&& 运算符是一个逻辑运算符,而不是条件运算符。 (是的,它是一个短路运算符,但这并不能改变它被称为逻辑运算符的事实!!)条件运算符是三元?运算符。

其次,无论如何,相同的论点都适用,尽管可读性论点(在大多数情况下)倾向于 && (和 ||)。只有新手在阅读第二个版本的代码时可能会遇到问题。

<小时/>

I think short circuit evaluation is the another important reason besides readability. so should we conclude here?

事实上,这根本没有区别。 && 短路等效于使用嵌套 if/else 语句得到的结果。 (当您比较 &&& 逻辑运算符时,实际上会出现差异。)

关于java - 使用带有逻辑运算符的 if 语句有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18890419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com