Java 只是一个关于逻辑的小问题。为什么这些是等价的?

Java 只是一个关于逻辑的小问题。为什么这些是等价的?,java,if-statement,methods,return,boolean-logic,Java,If Statement,Methods,Return,Boolean Logic,我想我会再次开始学习编码,所以很快的问题。这是为什么以及如何做到的: if (n1 >= 13 && n1 <= 19 || n2 >= 13 && n2 <= 19 || n3 >= 13 && n3 <= 19) { return true; } 如果(n1>=13&&n1=13&&n2=13&&n3=13&&n1=13&&n2=13&&n3如果条件为true,则第一个将仅返

我想我会再次开始学习编码,所以很快的问题。这是为什么以及如何做到的:

if (n1 >= 13 && n1 <= 19 || n2 >= 13 && n2 <= 19 || n3 >= 13 && n3 <= 19) {
            return true;
    }

如果(n1>=13&&n1=13&&n2=13&&n3=13&&n1=13&&n2=13&&n3如果条件为
true
,则第一个将仅返回
true
,而第二个将返回结果


为了回答您的问题,如果表达式:

(n1 >= 13 && n1 <= 19 || n2 >= 13 && n2 <= 19 || n3 >= 13 && n3 <= 19)

那么它们是等价的。

看看if语句

if(condition)
if语句的
条件
的结果将是一个布尔值,因为该方法的返回类型也是
布尔值
您可以返回条件的结果,而不是手动编码

现在,您的以下语句被视为
条件

(n1 >= 13 && n1 <= 19 || n2 >= 13 && n2 <= 19 || n3 >= 13 && n3 <= 19)

它们是不等价的。在第一种情况下,只有当条件满足时,它才会返回true,当条件不满足时,它不会返回任何内容。在第二种情况下,它会同时返回true和false。在第一种情况下,是否缺少
返回false;
if
之后?它们根本不等价。第一种情况下,它会计算如果且仅当所述表达式的计算结果为
true
,则返回一个硬编码的
true
值。第二个表达式返回表达式的值。此外,如果测试表达式的计算结果为false,则第一个表达式将允许程序继续运行;第二个语句不能这样说。另外,如果您的条件为bi你可以考虑做<代码>(In)(N1,N2,N3,…)。任何匹配(N-> n=> 13和
if(condition)
(n1 >= 13 && n1 <= 19 || n2 >= 13 && n2 <= 19 || n3 >= 13 && n3 <= 19)
return n1 >= 13 && n1 <= 19 || n2 >= 13 && n2 <= 19 || n3 >= 13 && n3 <= 19;