function在java中的作用_关于if语句:if(function()|| function())。它在java中是如何工作的?...

本文探讨了Java中逻辑运算符的使用方式,特别是&&和||的行为,并解释了短路评估如何影响函数调用的顺序。通过示例代码展示了如何利用这些特性来优化条件判断。

本问题已经有最佳答案,请猛点这里访问。

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

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

当&&工作(如果一个是假的,它不检查另一个),做|| 工作原理一样吗?

if(functionA() || functionB()){

//Do Your Work

}

上面的代码是否符合我的要求?

是的,只要两个函数都返回boolean。

你为什么不尝试而不是浪费时间在这里问一个问题?

一个恰当的答案只会说"是"。 很容易自己尝试这个。

根据Java语言规范,§15.24的规定:

The conditional-or operator || operator is like | (§15.22.2), but evaluates its right-hand operand only if the value of its left-hand operand is false.

+1对于JLS。

如果您的第一个函数returns true,那么logical OR会使您的第二个函数短路。

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

"默认情况下"? 你能用Java改变这种行为吗?

@ antti.huima Java还有& / |逻辑运算符(非按位),它将评估所有条件,即使其中一个是假/真。 也就是说,这两个运营商不会短路。

boolean f1 = functionA();

boolean f2 = functionB();

if(f1 || f2){

// if statement

} else {

// else statement

}

这只是示例代码,而不是问题的答案。 它也不是用户提出的要求,因为无论functionA的结果是否为真,它都会同时运行functionA和functionB。

是肯定它会执行function A()并且如果它将返回true,那么function B()将不会运行,您将根据需要执行其他代码。

是的,如果您希望它执行两者,您将完成if(functionA() | functionB()){

请注意,只有一个垂直条

如果functionA()返回true,则java中的延迟求值将避免使用functionB()。

if(functionA() | functionB())

可以帮助您完成此机制并强制评估您的两个功能。

是的,这将完全符合您的要求。 运行functionA(),如果没有返回true运行functionB()

你应该选择Marko Topolnik的答案,他补充说。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值