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 if
và if - 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ỗicase
để tránh thực thi cáccase
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>
và<giá_trị_nếu_sai>
phải cùng kiểu dữ liệu.