คำสั่ง switch case ในภาษา TypeScript
ในบทนี้ คุณจะได้เรียนรู้การใช้งานคำสั่ง 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 ด้วยตัวดำเนินการเปรียบเทียบความเท่ากัน