C++ | Cấu Trúc Rẽ Nhánh Switch ... Case

Lập trình C++ cơ bản, nâng cao

Cấu trúc switch trong C++ được sử dụng để thực hiện một trong số nhiều hành động dựa trên giá trị của một biến. Dưới đây là cấu trúc cơ bản của switch case:

switch (biến) {
    case giá_trị_1:
        // các câu lệnh
        break;
    case giá_trị_2:
        // các câu lệnh
        break;
    ...
    default:
        // các câu lệnh mặc định
}

Ví dụ cụ thể:

Giả sử chúng ta muốn in ra tên của một ngày trong tuần dựa trên một số nguyên (1 đến 7), chúng ta có thể sử dụng switch case như sau:

#include <iostream>
using namespace std;

int main() {
    int day = 4;

    switch (day) {
        case 1:
            cout << "Monday" << endl;
            break;
        case 2:
            cout << "Tuesday" << endl;
            break;
        case 3:
            cout << "Wednesday" << endl;
            break;
        case 4:
            cout << "Thursday" << endl;
            break;
        case 5:
            cout << "Friday" << endl;
            break;
        case 6:
            cout << "Saturday" << endl;
            break;
        case 7:
            cout << "Sunday" << endl;
            break;
        default:
            cout << "Invalid day" << endl;
            break;
    }

    return 0;
}

Giải thích:

  • switch (day): kiểm tra giá trị của biến day.
  • case 1: đến case 7:: tương ứng với các giá trị cụ thể mà biến day có thể nhận.
  • break;: được sử dụng để thoát khỏi switch sau khi thực hiện các câu lệnh tương ứng với giá trị được so khớp. Nếu không có break, chương trình sẽ tiếp tục thực hiện các câu lệnh trong các case tiếp theo (hiện tượng gọi là "fall-through").
  • default:: được thực hiện nếu không có case nào khớp với giá trị của biến day.

Đó là cấu trúc cơ bản và ví dụ về cách sử dụng switch case trong C++.

Bài tập thực hành

Chương trình máy tính

Viết chương trình nhập vào lựa chọn (+, -, *, /) và 2 số nguyên từ bàn phím. Tính và hiển thị kết quả phụ thuộc vào lựa chọn như sau:

  1. Lựa chọn là '+' thì cộng hai số nguyên vừa nhập.
  2. Lựa chọn là '-' thì trừ hai số nguyên vừa nhập.
  3. Lựa chọn là '*' thì nhân hai số nguyên vừa nhập.
  4. Lựa chọn là '/' thì chia hai số nguyên vừa nhập.
  5. Nếu lựa chọn không hợp lệ thì hiển thị là "Lua chon khong hop le".

Ví dụ:

  • Đầu vào:
+
1
2
  • Đầu ra:
Ket qua: 3

Giải:

#include <iostream>

int main()
{
    char lua_chon;
    int a, b;

    std::cin >> lua_chon;
    std::cin >> a >> b;

    // Viết code ở đây
    switch(lua_chon){
        case '+':
            std::cout << "Ket qua: " << a + b << std::endl;
            break;
        case '-':
            std::cout << "Ket qua: " << a - b << std::endl;
            break;
        case '*':
            std::cout << "Ket qua: " << a * b << std::endl;
            break;
        case '/':
            std::cout << "Ket qua: " << a / b << std::endl;
            break;
        default:
            std::cout << "Lua chon khong hop le" << std::endl;
            break;

    }
    return 0;
}

Tính số ngày của 1 tháng

Viết chương trình nhập vào tháng và in ra màn hình tổng số ngày trong tháng đó, nếu tháng nhập vào nhỏ hơn 1 hoặc lớn hơn 12 thì hiển thị ra là "Thang khong hop le".

Lưu ý: bỏ qua trường hợp năm nhuận, mặc định tháng 2 có 28 ngày.

Ví dụ:

  • Đầu vào:
2
  • Đầu ra:
Thang 2 co 28 ngay

Giải:

#include <iostream>

int main()
{
    int month;

    std::cin >> month;

    // Viết code ở đây
    switch(month){
        case 1:
            std::cout << "Thang 1 co 31 ngay" << std::endl;
            break;
        case 2:
            std::cout << "Thang 2 co 28 ngay" << std::endl;
            break; 
        case 3:
            std::cout << "Thang 3 co 31 ngay" << std::endl;
            break;  
        case 4:
            std::cout << "Thang 4 co 30 ngay" << std::endl;
            break;  
        case 5:
            std::cout << "Thang 5 co 31 ngay" << std::endl;
            break;
        case 6:
            std::cout << "Thang 6 co 30 ngay" << std::endl;
            break; 
        case 7:
            std::cout << "Thang 7 co 31 ngay" << std::endl;
            break;
        case 8:
            std::cout << "Thang 8 co 31 ngay" << std::endl;
            break; 
        case 9:
            std::cout << "Thang 9 co 30 ngay" << std::endl;
            break; 
        case 10:
            std::cout << "Thang 10 co 31 ngay" << std::endl;
            break;
        case 11:
            std::cout << "Thang 11 co 30 ngay" << std::endl;
            break;
        case 12:
            std::cout << "Thang 12 co 31 ngay" << std::endl;
            break;
        default:
         std::cout << "Thang khong hop le" << std::endl;
    }
    return 0;
}

Tính số ngày của 1 tháng #2

Viết chương trình nhập vào lần lượt năm và tháng sau đó hiển thị ra màn hình tổng số ngày trong tháng đó (nếu tháng nhỏ hơn 1 hoặc lớn hơn 12 thì hiển thị là "Thang khong hop le").

Lưu ý: tháng 2 của năm nhuận có 29 ngày.

Ví dụ:

  • Đầu vào:
1992
2
  • Đầu ra:
Thang 2 nam 1992 co 29 ngay

Giải:

#include <iostream>

int main()
{
    int year, month;

    std::cin >> year >> month;

    // Viết code ở đây
    switch(month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            std::cout << "Thang " << month << " nam " << year << " co 31 ngay" << std::endl;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            std::cout << "Thang " << month << " nam " << year << " co 30 ngay" << std::endl;
            break;
        case 2:
            if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
                 std::cout << "Thang " << month << " nam " << year << " co 29 ngay" << std::endl;
            }
            else{
                 std::cout << "Thang " << month << " nam " << year << " co 28 ngay" << std::endl;
            }
            break;
        default: 
        std::cout << "Thang khong hop le" << std::endl;
    }

    return 0;
}

Nhận xét

Mới hơn Cũ hơn