-3

我有两个函数:functionA()并且functionB(),两者都有一个返回类型boolean

如果其中任何一个返回 true 并且如果 functionA 返回 true 我不希望函数 B 执行,我想继续执行。

由于 && 有效(如果一个为假,则不检查另一个), || 工作一样吗?

if(functionA() || functionB()){
//Do Your Work
}

上面的代码能满足我的要求吗?

4

7 回答 7

6

正如Java 语言规范第 15.24 节所规定的:

条件或运算符 || 运算符就像 | ( §15.22.2 ),但仅当其左侧操作数的值为 false 时才评估其右侧操作数。

于 2013-07-03T10:27:37.377 回答
3

如果您的第一个功能returns true然后 logical OR短路您的第二个功能。

http://en.wikipedia.org/wiki/Short-circuit_evaluation

于 2013-07-03T10:26:31.550 回答
0
boolean f1 = functionA();
boolean f2 = functionB();

if(f1 || f2){
// if statement
} else {
// else statement
}
于 2013-07-03T10:46:33.217 回答
0

是的,这正是你想要的。运行 functionA(),如果不返回 true,则运行 functionB()

于 2013-07-03T10:27:33.330 回答
0

java中的延迟评估将避免您的functionB()iffunctionA()返回true

if(functionA() | functionB())

可以让您通过此机制并强制评估您的两个功能。

于 2013-07-03T10:28:36.287 回答
0

是的,它会的,如果你想让它同时执行你会做的if(functionA() | functionB()){

注意,只有一根竖线

于 2013-07-03T10:29:03.853 回答
0

是的,它肯定会执行function A(),如果它返回 true,则function B()不会运行,您的其他代码将按照您的意愿执行。

于 2013-07-03T10:38:58.183 回答