Câu lệnh switch
Thuộc phần Kiến thức nền tảng trong hành trình C++ của Coddy. Bài học 29 trên 74.
Câu lệnh switch giống như câu lệnh if có nhiều nhánh. Thay vì kiểm tra một điều kiện duy nhất, nó so sánh giá trị của một biến với nhiều trường hợp, rồi chạy đoạn code tương ứng với trường hợp khớp.
Đây là cấu trúc cơ bản của câu lệnh switch:
switch (variable) {
case value1:
// Code cần chạy nếu variable bằng value1
break;
case value2:
// Code cần chạy nếu variable bằng value2
break;
// ... các trường hợp khác
default:
// Code cần chạy nếu không có trường hợp nào khớp
}- Từ khóa
switchđứng sau biến bạn muốn kiểm tra, đặt trong dấu ngoặc đơn. - Mỗi
caseđại diện cho một giá trị có thể có của biến. - Code bên trong mỗi
casesẽ chạy nếu biến khớp với giá trị của trường hợp đó.
- Câu lệnh
breakrất quan trọng; nó thoát khỏiswitchsau khi thực thi một trường hợp. Nếu không có câu lệnh này, chương trình sẽ “chạy tiếp” sang trường hợp tiếp theo. - Trường hợp
defaultkhông bắt buộc và sẽ được thực thi nếu không có trường hợp nào khác khớp.
Đây là một ví dụ:
int day = 3;
std::string dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... các trường hợp cho những ngày khác
default:
dayName = "Invalid day";
}Bạn cũng có thể gộp nhiều trường hợp thành một:
int day = 3;
std::string dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... các nhánh case cho những ngày khác
default:
dayName = "Invalid day";
}Thử thách
Người mớiTạo một chương trình nhận số tháng (1 cho tháng January, 2 cho tháng February, v.v.) và in ra mùa tương ứng. Dùng câu lệnh switch cho phần logic.
Các mùa và những tháng tương ứng là:
- Winter: December (12), January (1), February (2)
- Spring: March (3), April (4), May (5)
- Summer: June (6), July (7), August (8)
- Autumn: September (9), October (10), November (11)
- Invalid month: với các lựa chọn khác
Tự làm thử
#include <iostream>
int main() {
int month;
std::cin >> month;
std::string season = "";
// Viết code của bạn bên dưới
std::cout << season << std::endl;
return 0;
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
Tự luyện tập: Trình biên dịch C++ online