我在读这post我想知道为什么会有人在意测试第二个条件,如果第一个是假的有什么例子:将在if语句是有用的比&&
如:
boolean a =false;
if(a && b) //do soemthing
为什么要测试b是否为假?
我在读这post我想知道为什么会有人在意测试第二个条件,如果第一个是假的有什么例子:将在if语句是有用的比&&
如:
boolean a =false;
if(a && b) //do soemthing
为什么要测试b是否为假?
这可能是有道理的,例如,如果你有一个函数可以执行你想要被解雇的东西,不管第一个值是什么。
if(a & _checkForB())
我能想到的唯一情况就是第二个评估有一些令人满意的副作用。
我不知道这是否是实际使用,但有时你必须代码杂技如
string s;
if((s = reader.read()))
{
doStuff
}
,我想你可以使用&
,如果你在你的条件确实有许多东西东东。
为什么要测试b是否为假?
我猜你的意思是:
为什么你会测试B,如果是假的?
E.g.如果b有副作用。尽管在这种情况下你可能有一个设计问题。
实际上,“&”不适用于布尔值,除非可能是“& =”。
单个&
是一个按位运算符,所以这就是您使用它的原因。例如,如果你想检查是否设置了一位:
unsigned int bit = 4;
if (bit & value) {
//third lowest bit is set
}
这在C库函数中发生了很多。如果您节省内存并使用单独的位而不是单独的变量,这非常有用。
编辑:我误读了一下帖子。我现在看到你正在谈论的背景。所以只有在b有副作用的情况下才能与其他人一致。
实际上是唯一正确的答案,+1 – BigMike 2013-04-04 15:16:08
'&'是按位AND,'&'和'&&' – BigMike 2013-04-04 15:15:02