Các loại câu lệnh điều kiện khác


Bên cạnh câu lệnh điều kiện ifif - else, C++ cung cấp hai dạng câu lệnh điều kiện khác: switch - case cho chuỗi điều kiện dài và toán tử ba ngôi cho câu điều kiện rút gọn.


Câu lệnh switch - case

Câu lệnh switch - case được dùng để so sánh một biến với nhiều giá trị khác nhau.

Cấu trúc:

C++
switch (<biến>) {
    case <giá_trị_1>:
        // Các câu lệnh thực thi khi <biến> = <giá_trị_1>
        break;
    case <giá_trị_2>:
        // Các câu lệnh thực thi khi <biến> = <giá_trị_2>
        break;
    case <giá_trị_3>:
        // Các câu lệnh thực thi khi <biến> = <giá_trị_3>
        break;
    ...
    default:
        // Các câu lệnh thục thi khi không vào trường hợp nào
}

Ví dụ

Nhập vào một số ngày trong tuần, hãy chuyển số đó thành tên tương ứng.

Mã nguồn

C++
int day = 3;
switch (day) {
    case 2:
        cout << "Thu Hai" << "\n";
        break;
    case 3:
        cout << "Thu Ba" << "\n";
        break;
    case 4:
        cout << "Thu Tu" << "\n";
        break;
    case 5:
        cout << "Thu Nam" << "\n";
        break;
    case 6:
        cout << "Thu Sau" << "\n";
        break;
    default:
        cout << "Cuoi tuan" << "\n";
}

Đầu ra

C++
Thu Ba

Lưu ý

  • Các khối lệnh trong mỗi case không cần sử dụng cặp ngoặc nhọn {}.
  • Ta sử dụng break sau mỗi case để tránh thực thi các case tiếp theo không mong muốn.

Toán tử ba ngôi

Đây là dạng rút gọn của câu lệnh if - else, hữu ích khi chỉ cần trả về một giá trị theo điều kiện.

Cú pháp:

biến = <điều_kiện> ? <giá_trị_nếu_đúng> : <giá_trị_nếu_sai>

Để tránh gây hiểu nhầm, ta thường dùng cặp ngoặc tròn () để phân biệt điều kiện và các giá trị trả về.

Ví dụ

Mã nguồn

C++
int a = 5, b = 3;
int max = (a > b) ? a : b;
cout << "Số lớn hơn là: " << max;

Đẩu ra

5

Lưu ý

  • Chỉ nên dùng toán tử ba ngôi khi điều kiện và giá trị đơn giản. Nếu điều kiện phức tạp và cần thực thi các câu lệnh khác, ta vẫn nên dùng if - else.
  • <giá_trị_nếu_đúng><giá_trị_nếu_sai> phải cùng kiểu dữ liệu.