我有两个函数:functionA()
并且functionB()
,两者都有一个返回类型boolean
。
如果其中任何一个返回 true 并且如果 functionA 返回 true 我不希望函数 B 执行,我想继续执行。
由于 && 有效(如果一个为假,则不检查另一个), || 工作一样吗?
if(functionA() || functionB()){
//Do Your Work
}
上面的代码能满足我的要求吗?
我有两个函数:functionA()
并且functionB()
,两者都有一个返回类型boolean
。
如果其中任何一个返回 true 并且如果 functionA 返回 true 我不希望函数 B 执行,我想继续执行。
由于 && 有效(如果一个为假,则不检查另一个), || 工作一样吗?
if(functionA() || functionB()){
//Do Your Work
}
上面的代码能满足我的要求吗?
正如Java 语言规范第 15.24 节所规定的:
条件或运算符 || 运算符就像 | ( §15.22.2 ),但仅当其左侧操作数的值为 false 时才评估其右侧操作数。
如果您的第一个功能returns true
然后 logical OR
短路您的第二个功能。
boolean f1 = functionA();
boolean f2 = functionB();
if(f1 || f2){
// if statement
} else {
// else statement
}
是的,这正是你想要的。运行 functionA(),如果不返回 true,则运行 functionB()
java中的延迟评估将避免您的functionB()
iffunctionA()
返回true
。
if(functionA() | functionB())
可以让您通过此机制并强制评估您的两个功能。
是的,它会的,如果你想让它同时执行你会做的if(functionA() | functionB()){
注意,只有一根竖线
是的,它肯定会执行function A()
,如果它返回 true,则function B()
不会运行,您的其他代码将按照您的意愿执行。