Неабавязковасць break у канструкцыі switch-case ў JavaScript

Каманда break у канструкцыі switch-case не з'яўляецца абавязковай. Пры адсутнасці 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);