返回语句中的Java逻辑运算符

时间:2017-01-21 09:25:10

标签: java boolean logic boolean-logic

所以我正在编写关于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,那么该语句将如何工作。

谢谢!

3 个答案:

答案 0 :(得分:1)

在Java中,逻辑术语从左到右进行评估。这意味着:

  • 表示OR语句:a || b - &gt;如果a已经为真,那么整个项必须为真,b不会被评估,如果a为假,b仍然可以为真,那么两个变量都将被评估
  • for AND-Statement:a&amp;&amp; B-&GT;如果a已经为假,那么同样的逻辑适用:b变量不需要被评估

您可以想象如下重写条件操作:

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 );

相关问题