相关疑难解决方法(0)

什么是短路以及在Java编程时如何使用它?

可能重复:
在布尔结果已知之后,java是否评估剩余条件
为什么我们通常||不使用|,有什么区别?

前几天我错过了我的课堂讲座,我想知道是否有人可以解释短路是什么,也许是一个简单的Java程序中使用它的例子.谢谢你的帮助!

java short short-circuiting

18
推荐指数
1
解决办法
4万
查看次数

在C#中使用&= on boolean值

我在C#中有一个方法,SendEvent它返回一个bool表示它是否成功的方法.我想循环遍历许多对象并调用SendEvent它们,最后,有一个结果变量是a bool,即true如果所有SendEvent调用都成功,并且false至少有一个失败.

起初我这样做了:

bool result = true;
for (int i = 0; i < myObjects.Length; i++)
{
    result = result && myObjects[i].SendEvent();
}
Run Code Online (Sandbox Code Playgroud)

但是SendEvent如果一个失败,那将导致后续对象不会被调用,因为&&如果结果是,则不会执行操作符的右侧false.

所以我把它转过来:

bool result = true;
for (int i = 0; i < myObjects.Length; i++)
{
    result = myObjects[i].SendEvent() && result;
}
Run Code Online (Sandbox Code Playgroud)

但我觉得有点难看.我可以使用按位运算&=符来始终执行SendEvent调用,并设置结果的值,像这样?

bool result = true;
for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c# boolean operators short-circuiting

3
推荐指数
2
解决办法
203
查看次数

C中&和&&的区别?

C &&&C 之间有什么区别?

我的老师给了我这个例子:

int a = 8;
int b = 4;
printf("a & b = %d\n", a & b);
printf("a && b = %d\n", a && b);
Run Code Online (Sandbox Code Playgroud)

输出:

a & b = 0;
a && b = 1;
Run Code Online (Sandbox Code Playgroud)

我不确定为什么这会在一个场景中返回true而在另一个场景中返回false.

c bitwise-operators logical-operators

3
推荐指数
2
解决办法
1万
查看次数