gpt4 book ai didi

java - 链式 AND 或链式 OR 最佳实践

转载 作者:行者123 更新时间:2023-11-29 05:14:00 26 4
gpt4 key购买 nike

哪个在最佳实践/效率方面更好?

if (x == 1
&& y == 1
&& z == 1)
{ do things }

if (x != 1 ||
y != 1 ||
z != 1)
{ don't do things and go to a different bit of logic.}

将AND和OR短路时,效率有什么不同吗?当需要做出多个逻辑断言时,(通常)是正面检查还是负面检查更好?

最佳答案

对于代码的纯粹优化,这取决于具体情况。平均而言进行最少比较的场景。

代码设计也是个案。 if-cases 应该与你实际寻找的相匹配。例如,一个测试字符串是否输入正确的函数。 (测试是编的)

public boolean isValidString (string s) {

if (s.isEmpty())
return false;

if (s.length() < 12)
return false;

if (s...)
return false

return true;
}

在这种情况下,最合乎逻辑的方法是 ||。可以这样写。

public boolean isValidString (string s) {

if (s.isEmpty() || s.length() < 12 || s...)
return false;

return true;
}

http://en.wikipedia.org/wiki/De_Morgan%27s_laws这可以改写为 not and。然而,这不是我们想要测试的,即使它们产生相同的结果。

所以在一般情况下坚持逻辑方法。

关于java - 链式 AND 或链式 OR 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27245395/

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