Câu lệnh switch cho phép kiểm tra biến bằng cách so sánh bằng với danh sách giá trị. Mỗi giá trị gọi là case, và biến được kiểm tra cho từng switch case.
Cú pháp switch trong C:
switch(expression) {
case constant-expression:
statement(s);
break; /* tùy chọn */
case constant-expression:
statement(s);
break; /* tùy chọn */
/* có thể có nhiều case */
default: /* tùy chọn */
statement(s);
}Quy tắc áp dụng cho switch:
Biểu thức trong switch phải có kiểu nguyên hoặc liệt kê, hoặc kiểu lớp có hàm chuyển đổi đơn lẻ sang kiểu nguyên/liệt kê.
Có thể có nhiều case trong switch. Mỗi case theo sau là giá trị so sánh và dấu hai chấm.
constant-expression cho case phải cùng kiểu dữ liệu với biến trong switch, và phải là hằng số hoặc literal.
Khi biến switch bằng case, câu lệnh sau case đó chạy cho đến khi gặp break.
Khi gặp break, switch kết thúc, điều khiển nhảy đến dòng sau switch.
Không phải case nào cũng cần break. Nếu không có break, điều khiển sẽ rơi xuống case tiếp theo cho đến khi gặp break.
Switch có thể có default tùy chọn, phải ở cuối switch. Default dùng khi không case nào đúng. Không cần break trong default.
Ví dụ mã
#include <stdio.h>
int main() {
/* định nghĩa biến cục bộ */
char grade = 'B';
switch(grade) {
case 'A':
printf("Excellent!\n");
break;
case 'B':
case 'C':
printf("Well done\n");
break;
case 'D':
printf("You passed\n");
break;
case 'F':
printf("Better try again\n");
break;
default:
printf("Invalid grade\n");
}
printf("Your grade is %c\n", grade);
return 0;
}Kết quả
Well done Your grade is B