คำสั่ง switch case ในภาษา TypeScript

12 January 2022

ในบทนี้ คุณจะได้เรียนรู้การใช้งานคำสั่ง switch case ในภาษา TypeScript ซึ่งเป็นคำสั่งที่ใช้สำหรับควบคุมเพื่อให้โปรแกรมทำงานตามเงื่อนไขที่กำหนดคล้ายกับคำสั่ง if else แต่เรียบง่ายกว่า นี่เป็นเนื้อหาในบทนี้

  • การใช้งานคำสั่ง switch case
  • การสร้างเงื่อนไขแบบ OR
  • การใช้งานกับ Expression

การใช้งานคำสั่ง switch case

คำสั่ง switch case เป็นคำสั่งเลือกเงื่อนไขเช่นเดียวกับคำสั่ง if else-if แต่สิ่งทีี่แตกต่างคือมันมักใช้สำหรับเปรียบเทียบกับค่าคงที่หรือ Literal ซึ่งนี่สามารถช่วยให้โค้ดสั้น กระชับ และอ่านง่ายมากขึ้นกว่าการใช้งานคำสั่ง if else นี่เป็นรูปแบบของการใช้งานคำสั่ง switch case ในภาษา TypeScript

switch (n) {
    case VALUE1:
        // statements
        break;
    case VALUE2:
        // statements
        break;
    default:
        // statements
        break;
}

คำสั่ง switch case รับค่าที่ส่งผ่านพารามิเตอร์ n ที่จะใช้ในการเปรียบเทียบกับค่าในแต่ละเคสด้วยตัวดำเนินการเปรียบเทียบความเท่ากัน (===) เมื่อพบกับแรกเคสที่ตรงกัน โปรแกรมจะทำงานคำสั่งที่กำหนดสำหรับเคสดังกล่าวจนพบกับคำสั่ง break

เคส default นั้นสามารถระบุเพื่อให้โปรแกรมทำงานในกรณีที่ค่าของ n ไม่ตรงกับค่าในเคสใดก่อนหน้าเลย นี่จะเหมือนกับการทำงานของคำสั่ง else ต่อไปมาดูตัวอย่างการใช้งานคำสั่ง switch case ในภาษา TypeScript สำหรับตรวจสอบค่าของตัวเลข

let n: number = 2;

switch (n) {
    case 1:
        console.log("One\n");
        break;
    case 2:
        console.log("Two\n");
        break;
    case 3:
        console.log("Three\n");
        break;
    default:
        console.log("Unknown\n");
        break;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Two

ในตัวอย่างนี้ เป็นการใช้งานคำสั่ง switch case สำหรับตรวจสอบค่าตัวเลขจำนวนเต็มและแสดงคำอ่านของตัวเลขออกทางหน้าจอ เนื่องจากค่าในตัวแปร n เท่ากับ case 2 ดังนั้นคำสั่งที่กำหนดสำหรับเคสนี้ทำงาน และโปรแกรมจบการทำงานเมื่อพบกับคำสั่ง break

นอกจากนี้ เราสามารถกำหนดเคส default เพื่อให้โปรแกรมทำงานในกรณีที่พารามิเตอร์ไม่ตรงกับค่าในเคสใดๆ เลย นี่เป็นตัวอย่างโปรแกรมบอกชื่อประเทศจากอาหาร ลองใส่ชื่อขอบอาหารที่คุณชอบและมาดูกันว่าโปรแกรมจะทราบอาหารของคุณหรือไม่

let food = "Souvlaki";

switch (food) {
    case "Neapolitan pizza":
        console.log("Italian food.\n");
        break;
    case "Peking duck":
        console.log("Chinese food\n");
        break;
    case "Churros":
        console.log("Spanish food\n");
        break;
    case "Pad thai":
        console.log("Thai food\n");
        break;
    default:
        console.log(`Unknown country for '${food}'.`);
        break;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Unknown country for 'Souvlaki'.

ในตัวอย่างนี้ เป็นการใช้คำสั่ง switch case ในการตรวจสอบชื่ออาหารและบอกประเทศที่อาหารนั้นอยู่ ในกรณีนี้เนื่องจากชื่อของอาหาร "Souvlaki" ในตัวแปร food ไม่ตรงกับเคสใดๆ เลย ดังนั้นคำสั่งที่กำหนดในเคส default ได้ถูกทำงานโดยบอกว่าไม่รู้จักประเทศของอาหารดังกล่าว

การสร้างเงื่อนไขแบบ OR

ในตัวอย่างที่ผ่านมาจะเห็นว่าเราต้องเขียนคำสั่ง break ในแต่ละเคสเพื่อหยุดการทำงานของคำสั่ง switch case อย่างไรก็ตาม คำสั่ง break สามารถที่จะละเว้นออกไปได้ นี่จะทำให้เราสามารถสร้างเงื่อนไขแบบ OR โดยการใช้คำสั่ง switch case ได้

นี่เป็นตัวอย่างของโปรแกรมให้คะแนนหนังสือโดยผลลัพธ์ของคะแนนจะมีสามระดับคือ ดี ปลานกลาง และแย่ และเราจะใช้คำสั่ง switch case ในการสร้างเงื่อนไขแบบ OR จากคะแนน 5 ระดับที่เป็นค่านำเข้าของโปรแกรม

console.log("Please rate this book from 1-5.");

let rate = 1;
console.log("You rated: " + rate);

switch (rate) {
    case 1:
    case 2:
        console.log("Bad");
        break;
    case 3:
        console.log("Average");
        break;
    case 4:
    case 5:
        console.log("Good");
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Please rate this book from 1-5.
You rated: 1
Bad

ในตัวอย่างนี้ โปรแกรมทำงานและพบว่าค่าในตัวแปร rate ตรงกับ case 1 นั่นจะทำให้โปรแกรมทำงานในชุดคำสั่งของเคสดังกล่าว และในกรณีนี้เราไม่ได้เขียนคำสั่ง break ให้กับเคสนี้ ดังนั้นโปรแกรมเพิกเฉยการเปรียบเทียบค่าในเคสที่เหลือทั้งหมดและทำงานจนกว่าจะพบกับคำสั่ง break

นั่นหมายความว่าในเคส 1 และ 2 มีชุดคำสั่งสำหรับการทำงานที่เหมือนกัน และเช่นเดียวกับเคส 4 และ 5 และนี่เป็นวิธีการสร้างเงื่อนไขแบบ OR ในคำสั่ง switch case ดังนั้นตัวอย่างนี้สามารถเขียนโดยใช้คำสั่ง if else ได้เป็น

console.log("Please rate this book from 1-5.");

let rate = 1;
console.log("You rated: " + rate);

if (rate == 1 || rate == 2) {
    console.log("Bad");
} else if (rate == 3) {
    console.log("Average");
} else if (rate == 4 || rate == 5) {
    console.log("Good");
}

ทั้งสองวิธีให้ผลลัพธ์ที่เหมือนกัน แต่เนื่องจากการเปรียบเทียบนั้นใช้ตัวดำเนินการ == เพื่อเปรียบเทียบกับค่าคงที่ ดังนั้นการใช้งานคำสั่ง switch case จะทำให้โค้ดสั้นและอ่านง่ายกว่า และนี่เป็นวิธีที่มันถูกออกแบบมาให้ใช้งาน

การใช้งานกับ Expression

แม้ว่าเราจะแนะนำให้ใช้ค่าคงที่ในการกำหนดเงื่อนไขให้กับเคส แต่ในทางปฏิบัติแล้วคุณสามารถใช้ค่าจากตัวแปรหรือ Expression ในการเปรียบเทียบได้ นี่เป็นตัวอย่างของโปรแกรมเพื่อตรวจสอบว่าตัวเลขเป็นจำนวนเต็มบวก เต็มลบ หรือศูนย์โดยใช้คำสั่ง switch case

let n: number = 5;

switch (true) {
    case n > 0:
        console.log(`${n} is positive number.`);
        break;
    case n < 0:
        console.log(`${n} is negative number.`);
        break;
    default:
        console.log(`${n} is zero.`);
        break;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

5 is positive number.

ในตัวอย่างนี้ เราใช้คำสั่ง switch case เพื่อสร้างเงื่อนไขในตรวจสอบว่าค่าในตัวแปร n ว่าเป็นจำนวนเต็มบวก เต็มลบ หรือศูนย์ สังเกตว่าเราได้กำหนดค่านำเข้าของคำสั่งเป็น true นี่เป็นเพราะว่าค่านี้จะถูกนำไปเปรียบเทียบกับค่าในแต่ละเคสที่กำหนดในรูปแบบของ Expression ที่ให้ผลลัพธ์เป็น Boolean และเนื่องจาก case n > 0 ส่งค่ากลับเป็น true ซึ่งตรงกับค่านำเข้าของคำสั่ง switch case ดังนั้นคำสั่งของเคสนี้ได้ถูกทำงานโดยแสดงข้อความว่าตัวเลขเป็นจำนวนเต็มบวกออกทางหน้าจอ

แม้ว่าการใช้งานคำสั่ง switch case กับ Expression ในรูปแบบนี้จะสามารถทำได้ แต่นี่เป็นวิธีที่ไม่นิยมทำกัน ดังนั้นในกรณีนี้เราแนะให้ใช้คำสั่ง if else แทน

ในบทนี้ คุณได้เรียนรู้การใช้งานคำสั่ง switch case ในภาษา TypeScript ซึ่งเป็นคำสั่งเลือกเงื่อนไขที่สามารถช่วยให้โค้ดกระชับและอ่านง่าย คำสั่ง switch case มักจะถูกใช้แทนที่คำสั่ง if else เมื่อโปรแกรมต้องการเปรียบเทียบกับค่าคงที่หรือ Literal ด้วยตัวดำเนินการเปรียบเทียบความเท่ากัน

บทความนี้เป็นประโยชน์หรือไม่?Yes·No