Tính không bắt buộc của break trong cấu trúc switch-case trong JavaScript

Lệnh break trong cấu trúc switch-case không phải là bắt buộc. Nếu không có break sau khi thực thi case đã định, tất cả các case bên dưới nó cũng sẽ được thực thi.

Hãy xem xét ví dụ:

javascriptlet num = 1; // giả sử ở đây là số 1

switch (num) {
  case 1:
    console.log(1); // cái này sẽ chạy
  case 2:
    console.log(2); // cái này cũng sẽ chạy
  case 3:
    console.log(3); // và cái này cũng sẽ chạy
}

Hãy thay đổi giá trị của biến:

javascriptlet num = 2; // giả sử ở đây là số 2

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2); // cái này sẽ chạy
  case 3:
    console.log(3); // cái này cũng sẽ chạy
}

Hãy thay đổi giá trị của biến:

javascriptlet num = 3; // giả sử ở đây là số 3

switch (num) {
  case 1:
    console.log(1);
  case 2:
    console.log(2);
  case 3:
    console.log(3); // cái này sẽ chạy
}

Đôi khi đặc điểm này được sử dụng khi giải quyết các bài toán. Hãy xem ví dụ:

javascriptlet num = 1;
let res;

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

console.log(res);

Tuy nhiên, rõ ràng hơn là giải bài toán như vậy bằng if:

javascriptlet num = 1;
let res;

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

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

console.log(res);