更清洁的方式来编写代码片段

问题描述 投票:-11回答:5

我是java的新手,我想知道是否有更简单的写法

if(a == 10 || b == 10){
    //stuff
}

在我看来,我尝试过这样的事情:

if(a||b == 10){
    //stuff
}

因为IMO具有很多直观感,但它不是一件事。

java if-statement
5个回答
2
投票

如果你只是比较几个值,那么你也可以继续使用当前的方法,因为没有任何东西可以缩短它。但是,如果您多次重复自己,那么您可以创建一个辅助函数来为您完成工作。

static boolean anyMatch(int comparisonValue, int... elements){
        return Arrays.stream(elements)
                     .anyMatch(e -> e == comparisonValue);
}

然后像这样称呼它:

if(anyMatch(10, a, b)){ ... }

1
投票

这不会那样。你正在检查一个值的两个变量的值,最终是两个检查,if(a == 10 || b == 10)

但是,您可以将此检查修改为以下代码:

if(Arrays.asList(a,b).contains(10))

它导致相同的行为,但这既不短也不容易阅读。


0
投票

是的,事实证明没有办法让它更短。


0
投票

不,我们不能这样做,因为在java的情况下,没有比较像这样的变量的选项。 即使你不能这样写

if(a||b){ //staff } 

但如果您愿意,那么您将收到此错误消息

错误:二元运算符'||'的错误操作数类型


0
投票

不短,但更“直观”可读:

boolean condA = (a == 10);
boolean condB = (b == 10);

if(condA || condA){
    //stuff
}

始终牢记,目标不是编写尽可能短的代码,而是编写最佳的可维护代码。

© www.soinside.com 2019 - 2024. All rights reserved.