if(function()| | functionB())。它在java中是如何工作的?

if(function()| | functionB())。它在java中是如何工作的?,java,if-statement,Java,If Statement,我有两个函数:function()和functionB(),它们都有一个返回类型boolean 如果其中一个返回true,我想继续执行,如果function返回true,我不想执行函数B 当&&起作用时(如果一个为假,则不检查另一个),那么| |的作用是否相同 if(functionA() || functionB()){ //Do Your Work } 上述代码是否满足我的要求?如果第一个函数返回true,则逻辑或会使第二个函数短路 是的,这正是您想要的。运行function(),如果未返

我有两个函数:
function()
functionB()
,它们都有一个返回类型
boolean

如果其中一个返回true,我想继续执行,如果function返回true,我不想执行函数B

当&&起作用时(如果一个为假,则不检查另一个),那么| |的作用是否相同

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

上述代码是否满足我的要求?

如果第一个函数
返回true
,则
逻辑或
会使第二个函数短路


是的,这正是您想要的。运行function(),如果未返回true,则按照以下命令的指定运行functionB()

条件or运算符| |运算符类似于|(),但仅当其左侧操作数的值为false时才计算其右侧操作数


如果
function()
返回
true
,java中的惰性计算将避免使用
functionB()

if(functionA() | functionB())

可以帮助您通过此机制并强制计算两个函数。

是的,如果您希望它同时执行这两个函数,那么如果(function()| functionB()){


注意,只有一个垂直条是,它肯定会执行
函数A()
,如果返回true,则执行
函数B()
将不会运行,其他代码将按您的意愿执行。

是的,只要两个函数都返回
布尔值即可。您为什么不尝试一下,而不是浪费时间在这里提问?正确的答案只会说“是”。您可以自己尝试。“默认情况下”?能否在Java中更改此行为???@antti.huima Java还具有
&
/
|
逻辑运算符(非按位),它将评估所有条件,即使其中一个条件为假/真。也就是说,这两个运算符不会短路。你应该选择Marko Topolnik的答案,他添加了一个参考。这只是示例代码,不是问题的答案。而且这不是用户问的问题,因为无论函数的结果如何,它都会运行functionA和functionBA是真的。
boolean f1 = functionA();
boolean f2 = functionB();

if(f1 || f2){
// if statement
} else {
// else statement
}