C++ Switch Case Statement พร้อมตัวอย่างโปรแกรม
สวิตช์คืออะไร?
คำสั่ง switch ช่วยในการทดสอบความเท่าเทียมกันของตัวแปรกับชุดของค่า แต่ละค่าที่เปรียบเทียบเรียกว่ากรณี
ดูสวิตช์เป็นคำสั่งแยกสาขาแบบหลายทาง คุณสามารถเปลี่ยนการดำเนินการของโปรแกรมไปยังส่วนต่างๆ ได้ตามค่าของนิพจน์
ควรใช้สวิตช์เมื่อใด?
สวิตช์จะคล้ายกับบันได if…else…if อย่างไรก็ตาม มันสร้างโค้ดที่สะอาดตาและเข้าใจง่าย สวิตช์ยังเร็วกว่าเมื่อเทียบกับบันได if…else…if ใช้คำสั่ง switch เมื่อคุณต้องการเปรียบเทียบค่าของตัวแปรกับชุดของค่าอื่นๆ
คำหลักแบ่ง
คีย์เวิร์ดแบ่งถูกใช้ภายในคำสั่ง switch ป้องกันไม่ให้โค้ดทำงานในกรณีถัดไป มันยุติลำดับคำสั่ง
เมื่อราคาของ C++ คอมไพลเลอร์พบคีย์เวิร์ดตัวแบ่ง การดำเนินการของสวิตช์สิ้นสุดลง และการควบคุมข้ามไปยังบรรทัดที่อยู่หลังคำสั่ง switch การใช้คำสั่งแบ่งในสวิตช์เป็นทางเลือก หากไม่ได้ใช้ การดำเนินการจะดำเนินต่อไปในกรณีถัดไป
วากยสัมพันธ์
นี่คือไวยากรณ์สำหรับคำสั่ง switch:
switch (variable) { case 1: break; case 2: break; default: }
พารามิเตอร์ข้างต้นอธิบายไว้ด้านล่าง:
- ตัวแปร: นี่คือตัวแปรที่จะทำการเปรียบเทียบ
- กรณี: มีคำสั่ง case มากมาย โดยแต่ละคำสั่งจะเปรียบเทียบตัวแปรกับค่าที่แตกต่างกัน
- หยุดพัก: คีย์เวิร์ดนี้ป้องกันไม่ให้ดำเนินการต่อไปยังคำสั่ง case ถัดไป
- ค่าเริ่มต้น: นี่เป็นทางเลือก มันระบุสิ่งที่ควรทำ ค่าของตัวแปรไม่ตรงกับกรณีใดๆ
ตัวอย่างโปรแกรม Switch Case 1
#include<iostream> using namespace std; int main() { int x = 20; switch (x) { case 10: cout<<"X is 10"; break; case 20: cout << "X is 20"; break; case 30: cout << "X is 30"; break; default: cout<<"X is not 10, 20 or 30"; break; } return 0; }
Output:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
- รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและ ฟังก์ชั่น โดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม
- { เป็นเครื่องหมายเริ่มต้นของเนื้อหาของฟังก์ชัน main()
- ประกาศตัวแปร x และกำหนดค่าเริ่มต้นเป็น 20
- การใช้คำสั่ง switch และส่งผ่านอาร์กิวเมนต์ x ไปให้ หมายความว่าเราต้องเปรียบเทียบค่าของตัวแปร x กับชุดของค่าอื่นๆ
- { ทำเครื่องหมายจุดเริ่มต้นของตัวสวิตช์
- การเปรียบเทียบค่าของตัวแปร x กับค่า 10
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นเป็นจริง นั่นคือ ถ้า x เป็น 10 การหยุดจะป้องกันไม่ให้ดำเนินการต่อไปในกรณีถัดไป
- การเปรียบเทียบค่าของตัวแปร x กับค่า 20
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นเป็นจริง นั่นคือ ถ้า x เป็น 20 การหยุดจะป้องกันไม่ให้ดำเนินการต่อไปในกรณีถัดไป
- การเปรียบเทียบค่าของตัวแปร x กับค่า 30
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นเป็นจริง นั่นคือ ถ้า x เป็น 30 การหยุดจะป้องกันไม่ให้ดำเนินการต่อไปในกรณีถัดไป
- ค่าดีฟอลต์ช่วยให้เราระบุได้ว่าต้องทำอะไรหากค่าของตัวแปร x ไม่ใช่ 10, 20 หรือ 30
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นไม่เป็นความจริง นั่นคือ ถ้า x ไม่ใช่ 10, 20 หรือ 30
- ส่วนท้ายของคำสั่ง switch
- ฟังก์ชัน main() ควรคืนค่าหากโปรแกรมทำงานได้ดี
- ส่วนท้ายของฟังก์ชัน main()
ตรวจสอบบทความของเราเกี่ยวกับความแตกต่างระหว่าง C และ C++:- คลิกที่นี่
ตัวอย่างโปรแกรม Switch Case 2
#include <iostream> using namespace std; int main() { int choice; cout << "Enter 1, 2 or 3: "; cin >> choice; switch (choice) { case 1: cout << "Choice 1"; break; case 2: cout << "Choice 2"; break; case 3: cout << "Choice 3"; break; default: cout << "Not 1, 2 or 3"; break; } }
Output:
นี่คือภาพหน้าจอของรหัส:
คำอธิบายรหัส:
- รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
- รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
- การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม { เป็นเครื่องหมายเริ่มต้นของเนื้อหาของฟังก์ชัน main()
- การประกาศตัวแปรจำนวนเต็มชื่อตัวเลือก
- พิมพ์ข้อความบางส่วนบนคอนโซล
- แจ้งให้ผู้ใช้ป้อนค่าที่ต้องการ
- การใช้คำสั่ง switch และส่งตัวเลือกอาร์กิวเมนต์ไปให้ หมายความว่าเราจำเป็นต้องเปรียบเทียบค่าของตัวเลือกตัวแปรกับชุดของค่าอื่นๆ
- { ทำเครื่องหมายจุดเริ่มต้นของตัวสวิตช์
- การเปรียบเทียบค่าตัวเลือกตัวแปรกับค่า 1
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นเป็นจริง นั่นคือ หากตัวเลือกคือ 10 การหยุดจะป้องกันไม่ให้ดำเนินการต่อไปในกรณีถัดไป
- การเปรียบเทียบค่าตัวเลือกตัวแปรกับค่า 2
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นเป็นจริง นั่นคือ หากตัวเลือกคือ 2 การหยุดจะป้องกันไม่ให้ดำเนินการต่อไปในกรณีถัดไป
- การเปรียบเทียบค่าตัวเลือกตัวแปรกับค่า 3
- คำสั่งที่จะดำเนินการหากกรณีข้างต้นเป็นจริง นั่นคือ หากตัวเลือกคือ 3 การหยุดจะป้องกันไม่ให้ดำเนินการต่อไปในกรณีถัดไป
- ค่าดีฟอลต์ช่วยให้เราระบุได้ว่าต้องทำอะไรหากค่าของตัวเลือกตัวแปรไม่ใช่ 1, 2 หรือ 3
- ข้อความที่จะดำเนินการหากกรณีข้างต้นไม่เป็นความจริง นั่นคือ ถ้าตัวเลือกไม่ใช่ 1, 2 หรือ 3
- ส่วนท้ายของคำสั่ง switch
- ส่วนท้ายของฟังก์ชัน main()
สรุป
- คำสั่ง switch ช่วยให้เราสร้างบันไดแบบ if…else…if แบบง่ายๆ
- คำสั่ง switch มีไวยากรณ์ที่ชัดเจนและเรียบง่ายกว่า if…else…if ladder
- ควรใช้คำสั่ง switch เมื่อคุณต้องการเปรียบเทียบค่าของตัวแปรกับชุดของค่าอื่นๆ
- ค่าจะถูกเพิ่มเข้าไปในคำสั่ง case
- คีย์เวิร์ดตัวแบ่งหยุดการดำเนินการไม่ให้ดำเนินการต่อไปยังกรณีถัดไป
- ส่วนเริ่มต้นที่เป็นทางเลือกจะใช้ในการระบุการดำเนินการที่จะต้องดำเนินการหากไม่มีกรณีและปัญหาที่ตรงกัน