繁体   English   中英

检查多个或条件的更短方式

[英]Shorter way to check multiple or conditions

是否有更简单的方法来检查一个变量值与其他几个变量值? 目前我正在使用这样的代码:

if(a[i] == a[i-13] || a[i] == a[i+13] || a[i] == a[i-1] || a[i] == a[i+1]){
  //my code
}

现在,有更短的方法吗? 我知道我可以使用开关 ,但是我必须多次编写我的函数。 有更简单的方法吗?

您无需使用开关多次编写函数:

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语句强大,但在这种情况下,我发现它更清晰,更不容易出错。

更好的是:

if (matchesAdjacent(a, i)) {
    // etc.
}

将逻辑从主线代码移到适当命名的方法中。

这也允许你在那里进行检查(如果在其他地方没有保证)。

不。但以下看起来更整洁:

if(a[i] == a[i-13] || 
   a[i] == a[i+13] || 
   a[i] == a[i-1] || 
   a[i] == a[i+1]
) {
  //my code
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM