การใช้งานคำสั่ง switch..case C++
ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับคำสั่ง switch และการทำงานในการเขียนโปรแกรม C++ ด้วยความช่วยเหลือจากตัวอย่าง
คำสั่ง switch ช่วยให้เราสามารถดำเนินการบล็อกของโค้ดในหมู่ ได้หลายทางเลือก
ไวยากรณ์ของคำสั่ง switch ภาษา C++ คือ:
switch (expression) {
case constant1:
// code to be executed if
// expression is equal to constant1;
break;
case constant2:
// code to be executed if
// expression is equal to constant2;
break;
.
.
.
default:
// code to be executed if
// expression doesn't match any constant
}
คำสั่ง switch ทำงานอย่างไร
นิพจน์จะได้รับการประเมินหนึ่งครั้งและเปรียบเทียบกับค่าของป้ายกำกับแต่ละกรณี
- หากมีการจับคู่ โค้ดที่สอดคล้องกันหลังจากดำเนินการป้ายกำกับที่ตรงกัน ตัวอย่างเช่น ถ้าค่าของตัวแปรเท่ากับค่าคงที่ 2 โค้ดหลังค่าคงที่2: จะถูกดำเนินการจนกว่าจะพบคำสั่ง break
- หากไม่มีการจับคู่ โค้ดหลังจาก default: จะถูกดำเนินการ
หมายเหตุ: เราสามารถทำสิ่งเดียวกันกับ if…else..if อย่างไรก็ตาม ไวยากรณ์ของคำสั่ง switch นั้นสะอาดกว่าและอ่านและเขียนได้ง่ายกว่ามาก
ผังงานของคำสั่ง switch

ตัวอย่าง: สร้างเครื่องคิดเลขโดยใช้คำสั่งสวิตช์
#include <iostream>
using namespace std;
int main() {
char oper;
float num1, num2;
cout << "Enter an operator (+, -, *, /): ";
cin >> oper;
cout << "Enter two numbers: " << endl;
cin >> num1 >> num2;
switch (oper) {
case '+':
cout << num1 << " + " << num2 << " = " << num1 + num2;
break;
case '-':
cout << num1 << " - " << num2 << " = " << num1 - num2;
break;
case '*':
cout << num1 << " * " << num2 << " = " << num1 * num2;
break;
case '/':
cout << num1 << " / " << num2 << " = " << num1 / num2;
break;
default:
// operator is doesn't match any case constant (+, -, *, /)
cout << "Error! The operator is not correct";
break;
}
return 0;
}
เอาท์พุต 1
Enter an operator (+, -, *, /): +
Enter two numbers:
2.3
4.5
2.3 + 4.5 = 6.8
เอาท์พุต 2
Enter an operator (+, -, *, /): -
Enter two numbers:
2.3
4.5
2.3 - 4.5 = -2.2
เอาท์พุต 3
Enter an operator (+, -, *, /): *
Enter two numbers:
2.3
4.5
2.3 * 4.5 = 10.35
เอาท์พุต 4
Enter an operator (+, -, *, /): /
Enter two numbers:
2.3
4.5
2.3 / 4.5 = 0.511111
เอาท์พุต 5
Enter an operator (+, -, *, /): ?
Enter two numbers:
2.3
4.5
Error! The operator is not correct.
ในโปรแกรมข้างต้น เราใช้คำสั่ง switch…case เพื่อทำการบวก ลบ คูณ และหาร
โปรแกรมนี้ทำงานอย่างไร
- ก่อนอื่นเราแจ้งให้ผู้ใช้ป้อนตัวดำเนินการ + , – , * , / ที่ต้องการ อินพุตนี้จะถูกเก็บไว้ในตัวแปร
char
ชื่อ oper. - จากนั้นเราให้ผู้ใช้ป้อนตัวเลขสองตัวซึ่งเก็บไว้ในตัวแปร float num1 และ num2.
- คำสั่ง
switch
ที่ใช้แล้วเพื่อตรวจสอบผู้ประกอบการที่เข้ามาโดยผู้ใช้:- หากผู้ใช้ป้อน การ
+
บวกจะดำเนินการกับตัวเลข - หากผู้ใช้ป้อน การ
-
ลบจะดำเนินการกับตัวเลข - หากผู้ใช้ป้อน การ
*
คูณจะดำเนินการกับตัวเลข - หากผู้ใช้ป้อน
/
จะมีการหารด้วยตัวเลข - หากผู้ใช้ป้อนอักขระอื่น รหัสเริ่มต้นจะถูกพิมพ์
- หากผู้ใช้ป้อน การ
ขอให้สังเกตว่า break
มีการใช้คำสั่งภายในแต่ละบล็อก case
สิ่งนี้จะยุติคำสั่ง switch
หากไม่ได้ใช้คำสั่ง break
ทุกกรณีหลังจากถูกต้อง case
จะถูกดำเนินการ