ความไม่จำเป็นของ 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);