我有 4 个非负整数值 a、b、c 和 d。我怎样才能以最佳方式检查 a、b、c 和 d 是否都等于 0?哪个是最小计算的最佳实践
如果(a==0 && b==0 && c==0 && d==0)
或者
如果(a+b+c+d==0)
或java中的任何其他最佳方式?
我有 4 个非负整数值 a、b、c 和 d。我怎样才能以最佳方式检查 a、b、c 和 d 是否都等于 0?哪个是最小计算的最佳实践
如果(a==0 && b==0 && c==0 && d==0)
或者
如果(a+b+c+d==0)
或java中的任何其他最佳方式?
if((a|b|c|d) == 0)
按位或
最好的方法是
if (a==0 && b==0 && c==0 && d==0)
这会在一个变量不为零时立即停止比较,如果所有变量都为零,则对每个变量执行一次比较。
它还清楚地表达了您要执行的操作,即检查所有变量是否为零。Twiddling bits 可能会带来一个小的优势(或者没有 - 衡量它!),但它会混淆你的代码并且显然属于微优化领域。
您可以检查最大的数字是否为零,或检查它们的总和(算术或逻辑)是否为零。
没有单一的通用“最佳”方式。
如果您的目标是清晰,则很难被击败if (a==0 && b==0 && c==0 && d==0)
。
如果您的目标是性能,您需要:
对所有变量执行二进制或运算并检查其二进制或为零
(a | b | c | d) == 0