Neobaveznost break u switch-case konstrukciji u JavaScript-u

Naredba break u konstrukciji switch-case nije obavezna. U nedostatku break nakon izvršenja željenog case, izvršiće se i svi case ispod njega.

Pogledajmo na primeru:

javascriptlet num = 1; // neka ovde bude broj 1

switch (num) {
  case 1:
    console.log(1); // ovo će se aktivirati
  case 2:
    console.log(2); // i ovo će se aktivirati
  case 3:
    console.log(3); // i ovo će se aktivirati
}

Promenimo vrednost promenljive:

javascriptlet num = 2; // neka ovde bude broj 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // ovo će se aktivirati
  case 3:
    console.log(3); // i ovo će se aktivirati
}

Promenimo vrednost promenljive:

javascriptlet num = 3; // neka ovde bude broj 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // ovo će se aktivirati
}

Ponekad se ova karakteristika koristi pri rešavanju zadataka. Pogledajte primer:

javascriptlet num = 1;
let res;

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

console.log(res);

Međutim, očiglednije je rešiti ovakav zadatak pomoću if:

javascriptlet num = 1;
let res;

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

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

console.log(res);