我想检查 t1、t2 和 t3 以查看它们是否在 13 - 19 的范围内。如果这三个中至少有一个是那么我想返回 true,如果它们都不是我想返回 false .这段代码有效,但我想知道是否有更简洁的编写方式,可能是这样的:
if (t1 || t2 || t3 >13 && <19) return true else return false?
这是我当前的代码。
public class NumberChecker {
public static boolean hasNumber(int t1, int t2, int t3) {
if ( (t1 >=13 && t1 <=19) || (t2 >=13 && t2 <=19) || (t3 >=13
&& t3 <=19) ) {
return true;
} else return false;
}
}
干杯
最佳答案
每当您发现自己在编写 if (x) return true; else return false;
,意识到你可以用更短和等效的 return x;
替换它。一开始可能看起来很奇怪,但是可以直接返回 boolean 条件。您无需检查它们是否为真然后返回真。
public static boolean hasNumber(int t1, int t2, int t3) {
return (t1 >=13 && t1 <=19) || (t2 >=13 && t2 <=19) || (t3 >=13 && t3 <=19);
}
然后您可以选择将公共(public)范围检查逻辑提取到辅助方法中。它使代码更长一些,但冗余更少。如果你更喜欢这个版本,取决于你;这是一个审美决定,真的。
public static boolean hasNumber(int t1, int t2, int t3) {
return isInRange(t1) || isInRange(t2) || isInRange(t3);
}
private static boolean isInRange(int t) {
return t >= 13 && t <= 19;
}
关于java - 有没有更简单的方法来检查 if 语句中的多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54877283/