我正在阅读这篇文章,我想知道如果第一个条件为假,为什么有人会关心测试第二个条件
例如:
boolean a =false;
if(a && b) //do soemthing
为什么要测试 b 是否为假?
Single&
是一个按位运算符,所以这就是您使用它的目的。例如,如果您想检查是否设置了某个位:
unsigned int bit = 4;
if (bit & value) {
//third lowest bit is set
}
这在 C 库函数中经常发生。如果您要节省内存并使用单独的位而不是单独的变量,这将非常有用。
编辑:我误读了这篇文章。我看到了你现在所说的上下文。所以要同意其他人,只有当 b 有副作用时。
为什么要测试 b 是否为假?
我猜你的意思是:
如果 a 为假,为什么要测试 b?
例如,如果 b 有副作用。尽管在这种情况下您可能会遇到设计问题。
实际上,除了“&=”之外,“&”不用于布尔值。
例如,如果您有一个函数可以执行您想要被解雇的事情,而不管第一个值是什么,这可能是有意义的。
if( a & _checkForB())
我能想到的唯一情况是对第二个的评估有一些理想的副作用。
我不知道这是否是实际使用,但有时你有代码杂技如
string s;
if((s = reader.read()))
{
doStuff
}
我想你可以使用&
, 如果你在你的条件下有多个东西可以做一些事情。