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