java - 有没有更简单的方法来检查 if 语句中的多个变量

标签 java

我想检查 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/

相关文章:

java - unix 中忽略非 ascii csv 分隔符

java - 绘制、重绘、paintComponent

java - 添加 GCM 后端时 Android 应用构建失败

java - Ant 类路径 - Hibernate 创建的类无法导入其他包

java - 如何杀死等待中的线程?

java - 打乱数组 (Java)

java - 在 Android 上发布 https

java - 我可以使用 Ear 部署数据源及其相应的驱动程序吗?

java - 异常似乎终止了 JList 的更新

Java Web 应用程序适用于 netbeans,但不适用于 "stand-alone"