所以我正在编写关于codingbat.com的一些问题,以巩固我迄今为止学到的一些东西,并且预计会有一些问题,其中提供的答案与我解决问题的方式不同。所以对于一个问题,我使用了一个样式/格式,我在一个早期问题的答案中看到并使其工作正常,但我只想对逻辑进行一些澄清。
以下是问题:
给定2个int值,如果它们都在30..40(含)范围内,则返回true,或者它们都在40..50范围内。
这是我的代码:
public boolean in3050(int a, int b) {
boolean in3040 = (a >= 30 && a <= 40) && (b >= 30 && b <= 40);
boolean in4050 = (a >= 40 && a <= 50) && (b >= 40 && b <= 50);
return in3040 || in4050;
}
所以这个答案有效,但是我想对return语句进行一个expplanation以及OR运算符如何使用两个布尔变量。如果在其中一个变量之前有AND运算符或NOT,那么该语句将如何工作。
谢谢!
答案 0 :(得分:1)
在Java中,逻辑术语从左到右进行评估。这意味着:
您可以想象如下重写条件操作:
if (in3040) {
return true;
}
if (in4050) {
return true;
}
考虑使用&amp;&amp; -Operator的情况,它看起来像
if (!in3040) {
return false;
}
if(!in4050) {
return false;
}
return true;
答案 1 :(得分:1)
这些运算符在return语句中的运行方式与程序中的其他位置完全相同。
答案 2 :(得分:1)
<强>等效强>
return [some expression]
相当于return ([some expression])
因此,return in3040 || in4050;
相当于return ( in3040 || in4050 );