Break-i mittekohustuslikkus switch-case konstruktsioonis JavaScriptis

Käsk break konstruktsioonis switch-case ei ole kohustuslik. Kui break puudub, pärast vastava case täitmist, käivitatakse kõik allpool olevad case-d.

Vaatame näidet:

javascriptlet num = 1; // olgu siin number 1

switch (num) {
  case 1:
    console.log(1); // see käivitub
  case 2:
    console.log(2); // see käivitub ka
  case 3:
    console.log(3); // see käivitub ka
}

Muudame muutuja väärtust:

javascriptlet num = 2; // olgu siin number 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // see käivitub
  case 3:
    console.log(3); // see käivitub ka
}

Muudame muutuja väärtust:

javascriptlet num = 3; // olgu siin number 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // see käivitub
}

Mõnikord kasutatakse seda omadust ülesannete lahendamisel. Vaadake näidet:

javascriptlet num = 1;
let res;

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

console.log(res);

Siiski on sellise ülesande lahendamine läbi if ilmselgem:

javascriptlet num = 1;
let res;

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

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

console.log(res);