-1

我正在阅读这篇文章,我想知道如果第一个条件为假,为什么有人会关心测试第二个条件

例如:

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

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

4

5 回答 5

1

Single&是一个按位运算符,所以这就是您使用它的目的。例如,如果您想检查是否设置了某个位:

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

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

编辑:我误读了这篇文章。我看到了你现在所说的上下文。所以要同意其他人,只有当 b 有副作用时。

于 2013-04-04T15:08:26.113 回答
0

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

我猜你的意思是:

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

例如,如果 b 有副作用。尽管在这种情况下您可能会遇到设计问题。

实际上,除了“&=”之外,“&”不用于布尔值。

于 2013-04-04T15:05:27.743 回答
0

例如,如果您有一个函数可以执行您想要被解雇的事情,而不管第一个值是什么,这可能是有意义的。

if( a & _checkForB())
于 2013-04-04T15:02:59.480 回答
0

我能想到的唯一情况是对第二个的评估有一些理想的副作用。

于 2013-04-04T15:03:18.310 回答
0

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

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

我想你可以使用&, 如果你在你的条件下有多个东西可以做一些事情。

于 2013-04-04T15:03:34.810 回答