我有4个非负整数值a,b,c和d.how我可以检查a,b,c和d是否以最佳方式等于0? 哪个是最小计算的最佳实践
if(a == 0&& b == 0& c == 0&& d == 0)
或
如果(A + B + C + d == 0)
或java中的任何其他最佳方式?
答案 0 :(得分:7)
if((a|b|c|d) == 0)
按位或
答案 1 :(得分:4)
最好的方法是
if (a==0 && b==0 && c==0 && d==0)
一旦一个变量不为零,就会停止比较,如果所有变量都为零,则对每个变量执行一次比较。
它还清楚地表达了您要做的事情,即检查所有变量是否为零。 Twiddling位可能带来一个小优势(或者不是 - 测量它!),但它会混淆你的代码,并且显然属于微优化领域。
答案 2 :(得分:1)
您可以检查最大数字是否为零,或检查它们的总和(算术或logical)是否为零。
没有单一的通用“最佳”方式。
如果你的目标是明确,那就很难超越if (a==0 && b==0 && c==0 && d==0)
。
如果您的目标是表现,则需要:
答案 3 :(得分:1)
对所有变量执行二进制或运算并检查其二进制或零
(a | b | c | d) == 0