我是java的新手,我想知道是否有更简单的写法
if(a == 10 || b == 10){
//stuff
}
在我看来,我尝试过这样的事情:
if(a||b == 10){
//stuff
}
因为IMO具有很多直观感,但它不是一件事。
如果你只是比较几个值,那么你也可以继续使用当前的方法,因为没有任何东西可以缩短它。但是,如果您多次重复自己,那么您可以创建一个辅助函数来为您完成工作。
即
static boolean anyMatch(int comparisonValue, int... elements){
return Arrays.stream(elements)
.anyMatch(e -> e == comparisonValue);
}
然后像这样称呼它:
if(anyMatch(10, a, b)){ ... }
这不会那样。你正在检查一个值的两个变量的值,最终是两个检查,if(a == 10 || b == 10)
。
但是,您可以将此检查修改为以下代码:
if(Arrays.asList(a,b).contains(10))
它导致相同的行为,但这既不短也不容易阅读。
是的,事实证明没有办法让它更短。
不,我们不能这样做,因为在java的情况下,没有比较像这样的变量的选项。 即使你不能这样写
if(a||b){ //staff }
但如果您愿意,那么您将收到此错误消息
错误:二元运算符'||'的错误操作数类型
不短,但更“直观”可读:
boolean condA = (a == 10);
boolean condB = (b == 10);
if(condA || condA){
//stuff
}
始终牢记,目标不是编写尽可能短的代码,而是编写最佳的可维护代码。