คำสั่ง Switch ใน JavaScript

switch 語句用於基於不同條件執行不同動作。

คำสั่ง Switch ใน JavaScript

請使用 switch 語句用於選擇多個需要執行的代碼塊之一。

語法

switch(แสดง式) {
     case n:
        บล็อคโค้ด
        break;
     case n:
        บล็อคโค้ด
        break;
     default:
        บล็อคโค้ดโดยเริ่มต้น
} 

การอธิบายรหัส

  • คำนวณค่าของ switch แสดง式
  • เปรียบเทียบค่าของตัวแปรกับค่าของ case แต่ละตัว
  • ถ้ามี case ที่ตรงกัน จะทำงานโค้ดที่เกี่ยวข้อง

实例

วิธี getDay() จะคืนค่าเลขจำนวน 0 ถึง 6 ของชื่อวันในสัปดาห์ (weekday number)

(Sunday=0, Monday=1, Tuesday=2 ..)

ตัวอย่างนี้ใช้ตัวเลขชื่อวันในสัปดาห์เพื่อคำนวณชื่อสัปดาห์

switch (new Date().getDay()) {
    case 0:
        day = "วันอาทิตย์";
        break;
    case 1:
        day = "วันจันทร์";
         break;
    case 2:
        day = "วันอังคาร";
         break;
    case 3:
        day = "วันพุธ";
         break;
    case 4:
        day = "วันพฤหัสบดี";
         break;
    case 5:
        day = "วันศุกร์";
         break;
    case 6:
        day = "วันเสาร์";
} 

ผลลัพธ์จะเป็น:


亲自试一试

คำสั่ง break

ถ้า JavaScript พบ break คำสั่งที่จะหยุดการปฏิบัติการในบล็อคโค้ด switch

การกระทำนี้จะหยุดการปฏิบัติการรหัสอื่นในบล็อคโค้ด และการทดสอบ case

ถ้าพบ case ที่ตรงกันและทำงานเสร็จ ให้หยุดปฏิบัติการโดยอัตโนมัติ (break) ไม่จำเป็นต้องทดสอบเพิ่มเติม

break สามารถปรับปรุงเวลาที่ใช้ในการปฏิบัติการมากโดยที่จะ "ละเลย" การปฏิบัติการรหัสอื่นในบล็อคโค้ด switch

ไม่จำเป็นต้องใช้ break ใน case สุดท้ายของบล็อคโค้ด switch โค้ดจะสิ้นสุดโดยธรรมชาติ

คำสั่ง default

default ใช้คำสั่งเพื่อกำหนดรหัสที่จะทำงานเมื่อไม่มี case ที่ตรงกัน

实例

getDay() วิธีนี้จะคืนค่าเลขจำนวน 0 ถึง 6 ของชื่อวันในสัปดาห์

ถ้าวันนี้ไม่ใช่วันเสาร์ (6) หรือวันอาทิตย์ (0) ให้แสดงข้อความโดยเริ่มต้น

switch (new Date().getDay()) {
    case 6:
        text = "วันนี้เป็นวันเสาร์";
        break; 
    case 0:
        text = "วันนี้เป็นวันอาทิตย์";
        break; 
    default: 
        text = "คาดหวังวันสุดสัปดาห์~";
} 

ผลลัพธ์ของ text คือ:


亲自试一试

โดยเริ่มต้นcase ไม่จำเป็นต้องเป็น case สุดท้ายในบล็อคโค้ด switch:

实例

switch (new Date().getDay()) {
    default: 
        text = "คาดหวังวันสุดสัปดาห์!";
         break;
    case 6:
        text = "วันนี้เป็นวันเสาร์";
        break; 
    case 0:
        text = "วันนี้เป็นวันอาทิตย์";
} 

亲自试一试

ถ้า default หากไม่เป็น case สุดท้ายในบล็อคโค้ด switch โปรดจำได้ว่าต้องใช้ break ใน case โดยเริ่มต้น

บล็อคโค้ดที่เป็นที่นิยม

บางครั้งคุณอาจจะต้องการ case ต่างกันเพื่อใช้โค้ดเดียวกัน。

ในตัวอย่างนี้ case 4 และ 5 แบ่งแยกโค้ดเดียวกัน ในขณะที่ 0 และ 6 แบ่งแยกโค้ดด้วยตัวเดียวกัน:

实例

switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "วันสุดสัปดาห์กำลังเข้ามา:)";
        break; 
    case 0:
    case 6:
        text = "วันนี้เป็นวันสุดสัปดาห์~";
         break;
    default: 
        text = "คาดหวังวันสุดสัปดาห์!";
} 

亲自试一试

รายละเอียดของ Switching

如果多种 case 匹配一个 case 值,则选择第一个 case。

如果未找到匹配的 case,程序将继续使用默认 label。

如果未找到默认 label,程序将继续 switch 后的语句。

严格的比较

Switch case 使用严格比较(===)。

值必须与要匹配的类型相同。

只有操作数属于同一类型时,严格比较才能为 true。

在这个例子中,x 将不匹配:

实例

var x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}

亲自试一试

课外书

如需更多有关 คำสั่ง Switch ใน JavaScript的知识,请阅读 JavaScript 高级教程中的相关内容:

ECMAScript switch 语句
switch 语句是 if 语句的兄弟语句。本节介绍了 switch 语句的用法,以及与 Java 中的 switch 语句的不同。