首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查多个或条件的更短方法

检查多个或条件的更短方法
EN

Stack Overflow用户
提问于 2011-10-28 23:07:15
回答 3查看 1.6K关注 0票数 6

有没有更简单的方法来检查一个变量值和其他几个变量值?目前我使用的代码如下:

代码语言:javascript
运行
复制
if(a[i] == a[i-13] || a[i] == a[i+13] || a[i] == a[i-1] || a[i] == a[i+1]){
  //my code
}

现在,有没有更短的方法来做这件事?我知道我可以使用switch,但是我必须多次编写我的函数。有没有更简单的方法来做这件事?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-28 23:20:20

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

代码语言:javascript
运行
复制
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语句强大,但在这种情况下,我发现它更清晰,也更不容易出错。

票数 5
EN

Stack Overflow用户

发布于 2011-10-28 23:11:17

更好的是:

代码语言:javascript
运行
复制
if (matchesAdjacent(a, i)) {
    // etc.
}

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

这还允许您在那里进行边界检查(如果在其他地方还没有得到保证)。

票数 2
EN

Stack Overflow用户

发布于 2011-10-28 23:08:44

不是的。然而,下面的代码看起来更简洁:

代码语言:javascript
运行
复制
if(a[i] == a[i-13] || 
   a[i] == a[i+13] || 
   a[i] == a[i-1] || 
   a[i] == a[i+1]
) {
  //my code
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7931118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档