2011-09-26 73 views
30

有没有办法将两个不同的案例值分配给同一代码块而无需复制和粘贴?例如,低于68和40应执行相同的代码,而30不相关。Javascript switch语句:有两种情况可以运行相同的代码吗?

case 68: 
    //Do something 
break; 

case 40: 
    //Do the same thing 
break; 

case 30: 
    //Do something different 
break; 

想想像这样的东西应该工作(即使它显然不)是不正确的?

case 68 || 40: 
    //Do something 
break; 

case 30: 
    //Do something else 
break; 

回答

98

就把它们之后对方没有休息

switch (myVar) { 
    case 68: 
    case 40: 
    // Do stuff 
    break; 

    case 30: 
    // Do stuff 
    break; 
} 
+0

声纳认为这是无创的,另一种选择? –

2
case 68: 
case 40: 
    // stuff 
    break; 
16

是的,你只要把相关的case报表彼此相邻,就像这样:

case 40: // Fallthrough 
case 68: 
    // Do something 
    break; 

case 30: 
    // Do something different 
    break; 

Fallthrough评论是有两个原因:

  • 它向人类读者保证你正在故意这样做
  • 它可防止类似皮棉工具发出的警告提醒您可能意外泄漏。
+1

我觉得你忘了一些东西。 :) – BNL

+0

@BNL:哎呀!现在修好了 - 谢谢。 – RichieHindle

0

Switch cases can be clubbed as shown in the dig.

而且,它不仅仅限于两种情况,您可以将其扩展到任何没有。的情况。

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供供参考的链接。如果链接页面发生变化,仅链接答案可能会失效 – slfan

-3

你应该使用:

switch condition { 
    case 1,2,3: 
    // do something 
    case 4,5: 
    // do something 
    default: 
    // do something 
} 

病例应以逗号分隔。

+0

这完全是错误的。开关盒中不能有多个值 –

相关问题