Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript开关Case语句情况_Javascript_Switch Statement - Fatal编程技术网

JavaScript开关Case语句情况

JavaScript开关Case语句情况,javascript,switch-statement,Javascript,Switch Statement,我有以下代码: switch (command) { case "greeting": { console.log('hello'); } break; case "eat": { console.log('so gooood'); } break; case "drink": { console.log('so gooood'); } break; case "crunch": { console.log('so gooood'); } break; } switch (co

我有以下代码:

switch (command) {
  case "greeting": { console.log('hello'); } break;
  case "eat": { console.log('so gooood'); } break;
  case "drink": { console.log('so gooood'); } break;
  case "crunch": { console.log('so gooood'); } break;
}
switch (command) {
  case "greeting" : { console.log('hello') } break;
  case "eat", "drink", "crunch": {console.log('so gooood') } break;
}
但最后3个案例输出的是相同的代码,我想找到一种更有条理的方法。有没有人知道我可以用什么好方法让它工作?类似于以下代码:

switch (command) {
  case "greeting": { console.log('hello'); } break;
  case "eat": { console.log('so gooood'); } break;
  case "drink": { console.log('so gooood'); } break;
  case "crunch": { console.log('so gooood'); } break;
}
switch (command) {
  case "greeting" : { console.log('hello') } break;
  case "eat", "drink", "crunch": {console.log('so gooood') } break;
}
前面的代码不起作用,但我试图演示如何使用该代码。基本上,将命令的一组值组合起来,使一个特定的操作发生,而不是为同一个操作设置三个单独的案例。有人知道我该怎么做吗?

失败案例:

switch (command) {
  case "greeting":
    console.log('hello');
    break;

  case "eat":
  case "drink":
  case "crunch":
    console.log('so gooood');
    break;
}
开关将在第一个匹配的情况下开始运行代码,并继续运行,直到遇到中断。这就是你暂停的原因,所以以下情况不会发生。如果你没有休息,你会遇到意想不到的失败案例


顺便说一句,{}内部案例是不必要的。

您可以通过阅读开关手册轻松回答这个问题:谢谢@deceze的回复,我不认为这是其中的一种情况。我不认为switch中有一个内置的方法来完成这项工作,尽管如果使用条件和黑客技巧来完成这项工作,有时在尝试做更复杂的事情时,你会忘记简单的解决方案,这就是为什么我觉得它没有被反驳,尽管我理解你的推理。当时限结束时,我会给你一个公认的答案。