Trong bài viết này, chúng ta sẽ tìm hiểu về lệnh switch case trong C++. Lệnh này là một lệnh rẻ nhánh rất hữu ích. Cuối bài viết cũng tổng hợp một số bài tập switch case giúp bạn thực hành nữa đấy.
Trong bài viết trước, chúng ta đã tìm hiểu về cấu trúc điều khiển if trong C++ là gì. Trong bài viết này, chúng ta sẽ tìm hiểu một cấu trúc điều khiển khác, đó là switch case.
Vậy switch case là gì? Chúng ta hãy tìm hiểu trong phần tiếp theo.
1. Cấu trúc lệnh switch case trong C++
Lệnh switch case tương tự như lệnh if-else if chúng ta đã học trước đó. Nghĩa là nó có nhiều điều kiện, và chương trình sẽ duyệt và kiểm tra từng điều kiện từ trên xuống dưới. Nếu điều kiện nào thõa mãn, đoạn code bên trong điều kiện đó sẽ được thực thi.
Cú pháp switch case
Cú pháp của cấu trúc lệnh switch case trong C++ như sau:
switch(expression)
{
case constant-expression1:
//Đoạn code thực thi khi constant-expression1 thõa mãn
break;
case constant-expression2:
//Đoạn code thực thi khi constant-expression2 thõa mãn
break;
...
default:
//Đoạn code thực thi nếu không có điều kiện nào thõa mãn
break;
}
Trong đó:
expression
: là giá trị được truyền vào để so sánh với các điều kiện constant-expression.constant-expression
: là điều kiện để so sánh với giá trị của expression truyền vào.break
: là lệnh để thoát khỏi cấu trúc lệnh switch case.default
: đây là giá trị mặc định, khi không có giá trị của expression nào thỏa mãn điều kiện constant-expression, đoạn code bên trong default sẽ được thực thi.
Ví dụ: In ra số chẵn và số lẻ.
Trong ví dụ này, đoạn code ở case 1
sẽ được chạy.
Lưu đồ hoạt động switch case
Hãy xem lưu đồ hoạt động của cấu trúc lệnh switch case dưới đây:
2. Lưu ý khi sử dụng switch case C++
Dưới đây là một số điểm mà bạn cần lưu ý khi sử dụng lệnh switch case trong C++:
constant-expression
phải có cùng kiểu dữ liệu vớiexpression
và phải là một giá trị thực như 1, 2, 3, "Tốt", "Bình thường",...- Lệnh
break
trong switch case được sử dụng để thoát khỏi cấu trúc lệnh. Một cấu trúc lệnh switch case không có lệnh break sẽ xét từng điều kiện một. Ví dụ, nếu điều kiện 1 thõa, đoạn code bên trong điều kiện 1 sẽ được thực thi. Tiếp tục xét điều kiện 2, nếu thõa, đoạn code bên trong điều kiện 2 sẽ được thực thi, và tiếp tục cho đến khi kết thúc cấu trúc lệnh switch case. Nếu sử dụng lệnh break, khi gặp break, chương trình sẽ thoát khỏi cấu trúc lệnh switch case và không xét tiếp điều kiện tiếp theo. - Lệnh
default
trong cấu trúc lệnh switch case là tùy chọn, nhưng nên sử dụng lệnh default và đặt nó ở cuối cấu trúc switch case. Khi không có điều kiện nào thỏa mãn, đoạn code bên trong default sẽ được thực thi, và không cần sử dụng lệnh break bên trong default. - Không được sử dụng 2 case có giá trị
constant-expression
trùng nhau. - Cho phép lồng switch case, nhưng không khuyến khích vì làm cho chương trình phức tạp và khó đọc hơn.
- Nếu có nhiều điều kiện để so sánh, sử dụng cấu trúc lệnh switch case hơn là if-else if vì làm cho chương trình rõ ràng và dễ đọc hơn.
3. Ví dụ lệnh switch case trong C++
Chúng ta hãy xét một ví dụ phân loại sinh viên dựa vào kết quả điểm học tập. Nếu điểm A thì phân loại là sinh viên xuất sắc, điểm B là sinh viên loại giỏi, điểm C là sinh viên loại khá, điểm D là sinh viên loại trung bình, điểm F là sinh viên loại yếu. Đoạn code sử dụng cấu trúc lệnh switch case như sau:
char grade = 'A';
switch(grade)
{
case 'A':
cout << "Sinh viên xuất sắc!";
break;
case 'B':
cout << "Sinh viên loại giỏi!";
break;
case 'C':
cout << "Sinh viên loại khá!";
break;
case 'D':
cout << "Sinh viên loại trung bình!";
break;
case 'F':
cout << "Sinh viên loại yếu!";
break;
default:
cout << "Không phân loại được";
break;
}
Kết quả sau khi thực thi đoạn code trên:
Ngoài ra, bạn có thể làm thêm những bài tập phía dưới để nâng cao kỹ năng sử dụng cấu trúc lệnh switch case.
4. Kết luận
Chúng ta đã tìm hiểu về cấu trúc lệnh switch case trong C++, và cũng biết cú pháp và cách sử dụng lệnh này.
Bài viết này kết thúc ở đây, trong bài viết tiếp theo, chúng ta sẽ tìm hiểu về vòng lặp for trong C++. Hãy tiếp tục theo dõi!
Đừng quên làm những bài tập thực hành dưới đây để nắm vững hơn!