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;