有没有任何例子&在if语句中比在&&和

时间:2013-04-04 15:00:47

标签: java

我正在读这个post我想知道为什么有人会在第一个错误的情况下测试第二个条件

例如:

boolean a =false;
if(a && b) //do soemthing

为什么要测试b是否为假?

5 个答案:

答案 0 :(得分:1)

&是一个按位运算符,因此您使用它。例如,如果要检查是否设置了位:

unsigned int bit = 4;
if (bit & value) {
    //third lowest bit is set
}

这在C库函数中发生了很多。如果你节省内存并使用单独的位而不是单独的变量,那将非常有用。

编辑:我误读了帖子。我现在看到你正在谈论的背景。所以同意其他人,只有b有副作用。

答案 1 :(得分:0)

例如,如果你有一个你想要被解雇的函数,无论第一个值是什么,这都是有意义的。

if( a & _checkForB())

答案 2 :(得分:0)

我能想到的唯一一个案例就是对第二种情况的评价有一些可取的副作用。

答案 3 :(得分:0)

我不知道这是否是实际使用,但有时你会有代码杂技,如

string s;
if((s = reader.read()))
{
    doStuff
}

我认为你可以使用&,如果你的条件中有多个东西可以做的话。

答案 4 :(得分:0)

  

为什么要测试b是否为假?

我想你的意思是:

如果a为假,为什么要测试b?

E.g。如果b有副作用。虽然在这种情况下你可能有设计问题。

在实践中,“&”除了“& =”之外,它不用于布尔值。