我写了下面的括号减少
if (((weight < 160 && (age <= 27 && age >= 22))
&& ((height < 72) && ((!isASmoker) && (isMale)))
&& ((isGoodLooking) && (isAbleToRelocate)))) {
我可以减少括号?
感谢
我写了下面的括号减少
if (((weight < 160 && (age <= 27 && age >= 22))
&& ((height < 72) && ((!isASmoker) && (isMale)))
&& ((isGoodLooking) && (isAbleToRelocate)))) {
我可以减少括号?
感谢
如Turing85's comment正确地指出,你实际上可以删除所有括号,除了外部的
if (weight < 160 && age <= 27 && age >= 22
&& height < 72 && !isASmoker && isMale
&& isGoodLooking && isAbleToRelocate )
这是parethesis可以使用的最小数量。最大数量是......好吧,几乎是无限的(有限数量,显然,但无限的可能性)。只要您的想法正确无误,您可以添加尽可能多的内容。
如果你正确地理解Java的运营商优先级,然后这可以减少到最低限度括号:
if ((weight < 160 && (age <= 27 && age >= 22))
&& ( height < 72 && !isASmoker && isMale)
&& ( isGoodLooking && isAbleToRelocate)) {
更多参考this。
编辑: - 其实,如果你考虑一下,如果用“和”运营商检查,如果第一个是真正的下一个条件ONY条件,这在逻辑上可以进一步降低至
if (weight < 160 && age <= 27 && age >= 22
&& height < 72 && !isASmoker && isMale
&& isGoodLooking && isAbleToRelocate) {
是的,你确定可以。你有没有尝试过? –
你只使用'&&',所以是的。基本上,您可以删除除了外括号之外的所有内容。但是你不应该设计这样的'if'子句。这导致不可维护的代码。 – Turing85
为什么首先放置所有括号? https://duckduckgo.com/?q=java+operator+precedence –