คำสั่ง switch case เป็นคำสั่งควบคุมเพื่อให้โปรแกรมทำงานแบบหลายทางเลือกคล้ายกับคำสั่ง if else-if แต่การใช้งานจะเรียบง่ายและจำกัดกว่ามาก และในการกำหนดเงื่อนไขจะเป็นการเปรียบเทียบความเท่ากันเท่านั้น นี่เป็นรูปแบบการใช้งานคำสั่ง switch case ในภาษา C++
//ตัวอย่างโปรแกรมคำสั่ง switch case
#include <iostream>
using namespace std;
int main(){
int n = 2;
switch (n) {
case 1:
cout << "One";
break;
case 2:
cout << "Two";
break;
case 3:
cout << "Three";
break;
default:
cout << "Unknown";
}
return 0;
}
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
Two
เราได้ประกาศตัวแปร n สำหรับเก็บค่าของตัวเลขจำนวนเต็ม จากนั้นใช้คำสั่ง switch case เพื่อตรวจสอบค่าในตัวแปรนี้ เนื่องจากค่าในตัวแปรตรงกับเงื่อนไขที่กำหนดใน case 2 ดังนั้นโปรแกรมทำงานคำสั่งของเคสดังกล่าวโดยแสดงข้อความ "Two" ออกทางหน้าจอ
cout << "Two";
break;
และเมื่อพบกับคำสั่ง break ถือว่าเป็นการจบการทำงานสำหรับเคส นั่นหมายความว่าคุณจะต้องใช้คำสั่งนี้ก่อนเริ่มต้นเคสใหม่เสมอ
ตอนนี้ลองเปลี่ยนค่าในตัวแปร n เป็นค่าอื่นๆ ที่ไม่ตรงกับ case ใดๆ ที่กำหนดในคำสั่ง switch case ยกตัวอย่างเช่น
int n = 5;
เราได้เปลี่ยนค่าในตัวแปรเป็น 5 และรันโปรแกรมอีกครั้ง เนื่องจากค่าในตัวแปรไม่ตรงกับเงื่อนไขใดๆ เลย โปรแกรมทำงานในบล็อคของเงื่อนไข default แทน และ "Unknown" ถูกแสดงออกทางหน้าจอ
#include <iostream>
using namespace std;
int main(){
int rating; //ประกาศตัวแปร ชื่อ rating ชนิดตัวเลขจำนวนเต็ม
cout << "Enter number 1 - 5 to rate this book " << endl;
cout << "1 and 2 for Bad" << endl;
cout << "3 for Average" << endl;
cout << "4 and 5 for Good" << endl;
cout << "Enter number : ";
cin >> rating;
switch (rating) {
case 1:
case 2:
cout << "Bad";
break;
case 3:
cout << "Average";
break;
case 4:
case 5:
cout << "Good";
break;
default:
cout << "Invalid value";
}
return 0;
}
นี่เป็นผลลัพธ์การทำงานของโปรแกรมจากการรัน 3 ครั้ง และเรากรอกค่านำเข้าเป็น 3, 4 และ 5 ตามลำดับ
Enter number 1 - 5 to rate this book
1 and 2 for Bad
3 for Average
4 and 5 for Good
Enter number: 3
Average
-------------------------------------------
...
Enter number: 4
Good
-------------------------------------------
...
Enter number: 5
Good
ในตัวอย่าง เป็นโปรแกรมโหวตความพึงพอใจของการอ่านหนังสือโดยการใช้คะแนนจาก 1 - 5 ที่รับค่ามาจากทางคีย์บอร์ด สำหรับเงื่อนไขในการประเมินคะแนนนั้นจะมีอยู่เพียงสามระดับได้แก่
คะแนนโหวต 1-2 ประเมินผลเป็น Bad
คะแนนโหวต 3 ประเมินผลเป็น Average
คะแนนโหวต 4-5 ประเมินผลเป็น Good
จะเห็นว่าบางคะแนนนั้นให้ผลการประเมินที่เหมือนกัน และถ้าหากเงื่อนไขใดๆ มีการทำงานที่เหมือนกัน เราสามารถเขียน case เชื่อมต่อกันได้ เหมือนกับเคส 1,2 และ 4,5 ที่คุณเห็นในโปรแกรม
case 4:
case 5:
cout << "Good";
break;
นั่นหมายความว่าเมื่อค่าของ rating เป็น 4 โปรแกรมจะทำงานคำสั่งของ case ใกล้ที่สุดที่มันเจอจนกว่าจะพบกับคำสั่ง break ซึ่งนี่เป็นวิธีที่เราสามารถละเว้นคำสั่ง break ในคำสั่ง switch case ได้
คำสั่ง switch case ไม่เหมาะกับข้อมูลที่มีผลลัพธ์เป็นช่วงชั้น
เช่น โปรแกรมตรวจสอบอายุว่าคุณเป็นเด็ก วัยรุ่น หรือผู้ใหญ่ โดยการพิจารณาจากอายุที่กรอกเข้ามาผ่านทางคีย์บอร์ด
ซึ่งอายุที่มีอยู่สามช่วงได้แก่
อายุ 0 - 12 เป็นเด็ก
อายุ 12 - 18 เป็นวัยรุ่น
และอายุ 18 - 100 เป็นผู้ใหญ่
การใช้ switch case ต้องมี 101 case เพื่อรองรับอายุตั้งแต่ 0 - 100
case 0:
case 1:
case 2:
case 3:
...
case 11:
cout << "You're a children";
break;
ลักษณะนี้จะใช้คำสั่ง if else-if จะง่ายกว่า
//ตัวอย่างโปรแกรม if else-if
#include <iostream>
using namespace std;
int main(){
int age;
cout << "Enter your age: ";
cin >> age;
if (age >= 0 && age < 12) {
cout << "You're a children"; //เป็นเด็ก
} else if (age >= 12 && age < 18) {
cout << "You're a teenager"; //เป็นวัยรุ่น
} else if (age >= 18 && age <= 100) {
cout << "You're an adult"; //เป็นผู้ใหญ่
} else {
cout << "Invalid age");
}
return 0;
}
นักเรียนเขียนโปรแกรม C++
ด้วยคำสั่ง switch case
รับค่าตัวเลข 1 - 7 แล้วให้แสดงผล
เป็นวันของสัปดาห์ จันทร์ ถึง อาทิตย์
ตัวอย่างผล RUN
จัดทำโดย นางสาวทิพย์สุคนธ์ พันธ์กิ่ง กลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี
โรงเรียนบุญวัฒนา สำนักงานเขตพื้นที่การศึกษามัธยมศึกษา นครราชสีมา