【问题标题】:How can I simplify this if statement?如何简化此 if 语句?
【发布时间】:2021-12-07 19:26:59
【问题描述】:

基本上,我正在为学校做一个 java 程序。我们需要使用的 checkstyle 程序是说我没有足够简化我的 if 语句。有没有更好的方法来做到这一点?

我的代码:

    if (check() == true)
    {
        return amount * 0.85;
    }
    else
    {
        return amount;
    }

【问题讨论】:

  • 1.删除== true。 2.去掉else:return后面是多余的。

标签: java if-statement


【解决方案1】:

当您已经在使用布尔值时,无需添加 == true

if (check()) {
...
}
else {
...
}

【讨论】:

    【解决方案2】:

    您可以使用三元运算符。

    return check() ? amount * 0.85 : amount
    

    【讨论】:

    • 怎么样,返回金额 * check() ? .85 : 1;
    【解决方案3】:

    将布尔值转换为整数,然后将其用作数组中的索引以获取与 amount 相乘的值,您不需要 if 或三元运算符:

    return amount * (new double[] {1.0, 0.85}[Boolean.compare(check(), false)]);
    

    我在开玩笑。这是我能想到的最糟糕的方法。

    说真的,风格检查程序主要关心你的表达式有多复杂以及有多少潜在的分支(圈复杂度),所以删除else,不要比较true和true来得到true,这应该足以让它快乐。

    【讨论】:

    • 您应该将双数组存储在私有静态最终变量中,这样您就不会在每个函数调用时创建一个新数组!但是你的回答让我笑了?
    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 2021-11-20
    • 2014-06-18
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    相关资源
    最近更新 更多