如何简化此 if 语句?

Posted

技术标签:

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

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

我的代码:

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

【问题讨论】:

1.删除== true。 2.去掉elsereturn后面是多余的。 【参考方案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,不要比较truetrue来得到true,这应该足以让它快乐。

【讨论】:

您应该将双数组存储在私有静态最终变量中,这样您就不会在每个函数调用时创建一个新数组!但是你的回答让我笑了?

以上是关于如何简化此 if 语句?的主要内容,如果未能解决你的问题,请参考以下文章

简化/自动化此If语句中的分支

如何简化 if - else 语句?

IF 语句 - 如何减少/简化源代码量

简化javascript中的嵌套if else语句[关闭]

此 IF 语句中的语句如何工作?

php 简化如果PHP if语句与HMTL