การใช้งานคำสั่ง 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 เพื่อทำการบวก ลบ คูณ และหาร

โปรแกรมนี้ทำงานอย่างไร


  1. ก่อนอื่นเราแจ้งให้ผู้ใช้ป้อนตัวดำเนินการ + , – , * , / ที่ต้องการ อินพุตนี้จะถูกเก็บไว้ในตัวแปร char ชื่อ oper.
  2. จากนั้นเราให้ผู้ใช้ป้อนตัวเลขสองตัวซึ่งเก็บไว้ในตัวแปร float num1 และ num2.
  3. คำสั่ง switch ที่ใช้แล้วเพื่อตรวจสอบผู้ประกอบการที่เข้ามาโดยผู้ใช้:
    • หากผู้ใช้ป้อน การ+บวกจะดำเนินการกับตัวเลข
    • หากผู้ใช้ป้อน การ-ลบจะดำเนินการกับตัวเลข
    • หากผู้ใช้ป้อน การ*คูณจะดำเนินการกับตัวเลข
    • หากผู้ใช้ป้อน/จะมีการหารด้วยตัวเลข
    • หากผู้ใช้ป้อนอักขระอื่น รหัสเริ่มต้นจะถูกพิมพ์

ขอให้สังเกตว่า break มีการใช้คำสั่งภายในแต่ละบล็อก case สิ่งนี้จะยุติคำสั่ง switch

หากไม่ได้ใช้คำสั่ง break ทุกกรณีหลังจากถูกต้อง case จะถูกดำเนินการ

Leave a Reply

Your email address will not be published. Required fields are marked *