L'optionalité de break dans la structure switch-case en JavaScript

L'instruction break dans la structure switch-case n'est pas obligatoire. En l'absence de break après l'exécution du case prévu, tous les case situés en dessous seront également exécutés.

Regardons un exemple :

javascriptlet num = 1; // supposons le nombre 1 ici

switch (num) {
  case 1:
    console.log(1); // ceci s'exécutera
  case 2:
    console.log(2); // ceci s'exécutera aussi
  case 3:
    console.log(3); // ceci s'exécutera aussi
}

Modifions la valeur de la variable :

javascriptlet num = 2; // supposons le nombre 2 ici

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // ceci s'exécutera
  case 3:
    console.log(3); // ceci s'exécutera aussi
}

Modifions la valeur de la variable :

javascriptlet num = 3; // supposons le nombre 3 ici

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // ceci s'exécutera
}

Cette particularité est parfois utilisée pour résoudre des problèmes. Regardez l'exemple :

javascriptlet num = 1;
let res;

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

console.log(res);

Il est cependant plus évident de résoudre un tel problème avec if :

javascriptlet num = 1;
let res;

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

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

console.log(res);