是否有更简单的方法可以检查一个变量值与其他几个变量值?目前我正在使用这样的代码:
if(a[i] == a[i-13] || a[i] == a[i+13] || a[i] == a[i-1] || a[i] == a[i+1]){
//my code
}
现在,有更短的方法吗?我知道我可以使用switch,但是我必须多次编写我的函数。有没有更简单的方法呢?
答案 0 :(得分:5)
您无需使用开关多次编写功能:
switch(a[i]){
case a[i-13]:
case a[i+13]:
case a[i-1]:
case a[i+1]:
// This code will run if any of the above cases are true.
}
然而,有趣的是,这几乎是相同数量的字符(取决于你如何格式化它)。一般来说,switch语句不如显式if
语句强大,但在这种情况下,我发现它更清晰,更不容易出错。
答案 1 :(得分:2)
更好的是:
if (matchesAdjacent(a, i)) {
// etc.
}
将逻辑从主线代码移到适当命名的方法中。
这也允许你在那里进行检查(如果在其他地方没有保证)。
答案 2 :(得分:1)
没有。然而,以下看起来更整洁:
if(a[i] == a[i-13] ||
a[i] == a[i+13] ||
a[i] == a[i-1] ||
a[i] == a[i+1]
) {
//my code
}