【发布时间】:2013-02-10 18:57:17
【问题描述】:
我在我正在查看的程序中发现了这段代码 sn-p,有人可以解释这里发生了什么吗?
return methodA() || methodB();
methodA 和 methodB 最终返回布尔值。这是某种异常保护还是这条语句总是返回methodA()?
【问题讨论】:
标签: java return conditional
我在我正在查看的程序中发现了这段代码 sn-p,有人可以解释这里发生了什么吗?
return methodA() || methodB();
methodA 和 methodB 最终返回布尔值。这是某种异常保护还是这条语句总是返回methodA()?
【问题讨论】:
标签: java return conditional
它调用methodA 并检查结果。如果为真,则立即返回真。否则,它会调用 methodB 并返回它。
无论如何,这被称为短路运算符。我建议多学习一点 Java 的运算符,因为你可能会经常看到类似的东西。
如果不需要短路行为,他们可以使用
return methodA() | methodB();
这将调用这两个方法,对结果执行按位或(相当于逻辑或布尔值)并返回结果。
【讨论】:
表示如果methodA返回true则将其作为返回值,否则使用methodB的返回值。一种级联评估的返回值。
【讨论】:
以下简称:
boolean a = methodA();
boolean b = methodB();
if(a) {
return true;
}
else if(b) {
return true;
}
else {
return false;
}
如果methodA() 返回true,则不会调用methodB(),而是返回true。如果MethodA() 返回false,则methodB() 将被调用并返回其值。
【讨论】:
methodB。