如何简化此 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.去掉else
:return
后面是多余的。
【参考方案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
,这应该足以让它快乐。
【讨论】:
您应该将双数组存储在私有静态最终变量中,这样您就不会在每个函数调用时创建一个新数组!但是你的回答让我笑了?以上是关于如何简化此 if 语句?的主要内容,如果未能解决你的问题,请参考以下文章