如何解决简化Java IF-ELSE
想象一下,有一个带有n个条件的“ if语句”:
.subtract {
float: left;
width: 30%;
height: 100%;
transform: skewY(30deg) translate(0px,-100px);
}
.rectangle {
float: left;
width: 70%;
height: 100%;
}
.wrapper {
width: 100%;
height: 500px;
}
可以这样重写吗:
if (a == b || x == '0' || z == '1' .... || s == 'e') { // < n conditions
result = do_something();
}
与由OR / AND运算符分隔的多个条件相比,它更具可读性,并且不那么麻烦。如果需要添加其他条件,那么我们可以添加其他情况。
这可能吗?如果是,那么请共享一个实现。
或
原始的“ if语句”本身是否是编码错误的结果,因此应作为暗示需要重新审查和改进整个代码的提示?
解决方法
简短的回答是不能,您也不应该。 您可以简单地以一种不错的方式对其进行格式化:
if (a == b
|| x == '0'
|| (z == '1' && a == 'e')
|| s == 'e') {
result = do_something();
}
长答案是可以的,但这将是混乱且不清楚的!
在Java(和大多数其他语言)中,切换用于“切换” enumeration。因此,您无法使用x == b
之类的布尔表达式进行切换。甚至没有像这样简单的事情:
//NOT REAL JAVA CODE
switch (true) {
case true:
Sytem.out.println("true");
break;
case false:
Sytem.out.println("false");
break;
}
如果真的要升级,请考虑以下想法以简化
- 评论更多
- 改为使用循环
- 改为使用更多Ifs
- 使用真值表简化if
对于预定义集中的选项数量有限(例如:星期几)的情况,switch语句是很好的选择。 我们不能在switch语句中比较所有类型的对象和基元。我们不能将null值作为参数传递给switch语句。如果这样做,该程序将抛出NullPointerException。
如果您进行搜索,则会发现更多此类内容。因此,仅出于可读性考虑,请勿更改if语句以切换大小写。您可以通过合理地设置格式,使if语句更具可读性,使用嵌套的if来添加对if块的注释以提及条件的使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。