JavaScriptにおけるswitch-case構文におけるbreakの任意性

switch-case構文内のbreak命令は 必須ではありません。breakが存在しない場合、 意図したcaseの実行後、 その下にある全てのcaseも実行されます。

例を見てみましょう:

javascriptlet num = 1; // ここは数値1とします

switch (num) {
  case 1:
    console.log(1); // これが実行されます
  case 2:
    console.log(2); // これも実行されます
  case 3:
    console.log(3); // これも実行されます
}

変数の値を変更します:

javascriptlet num = 2; // ここは数値2とします

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // これが実行されます
  case 3:
    console.log(3); // これも実行されます
}

変数の値を変更します:

javascriptlet num = 3; // ここは数値3とします

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // これが実行されます
}

この特性は、問題を解決する際に 利用されることがあります。例を見てください:

javascriptlet num = 1;
let res;

switch (num) {
  case 1:
  case 2:
    res = 'a';
  break;
  case 3:
    res = 'b';
  break;
}

console.log(res);

しかし、このような問題はifを 使って解決する方が明らかです:

javascriptlet num = 1;
let res;

if (num == 1 || num == 2) {
  res = 'a';
}

if (num == 3) {
  res = 'b';
}

console.log(res);