Lệnh switch-case trong lập trình c' class='hover-show-link replace-link-1748'>ngôn ngữ lập trình c giúp chúng ta thực hiện các điều kiện và các khối lệnh tương ứng. Mặc dù tương tự như if-else, nhưng switch-case mang lại một cách tiếp cận mới và linh hoạt hơn để xử lý các điều kiện.
Ưu điểm của lệnh switch-case
- Switch-case là một cấu trúc điều khiển mạnh mẽ và có thể thay thế được if-else.
- Sử dụng switch-case giúp code dễ viết và dễ đọc hơn.
- Hiệu suất của switch-case cao hơn so với if-else.
Dưới đây là cú pháp của lệnh switch-case:
switch (biểu thức) { case hằng số1: // khối lệnh 1 break; case hằng số2: // khối lệnh 2 break; ... default: // khối lệnh mặc định }
- Lệnh switch sẽ so sánh giá trị của biểu thức với mỗi case bên trong nó.
- Từ khóa break được sử dụng để kết thúc một case trong câu lệnh switch.
- Case default được thực hiện nếu không có case nào khớp với giá trị của biểu thức. Có thể có một case default hoặc không có.
- Nếu có một case khớp với giá trị của biểu thức, khối lệnh tương ứng của case đó sẽ được thực hiện cho tới khi gặp từ khóa break.
Lưu ý khi sử dụng switch-case
- Các giá trị của mỗi case phải cùng kiểu dữ liệu với giá trị của biểu thức.
- Biểu thức phải là giá trị hằng, có thể là biểu thức nhưng kết quả phải là hằng số.
- Giá trị của các case là hằng số và các giá trị của các case phải khác nhau.
- Số lượng các case là không giới hạn, nhưng chỉ có thể có duy nhất một case default.
- Từ khóa break có thể được sử dụng hoặc không. Nếu không sử dụng, chương trình sẽ không kết thúc khi đã thực hiện hết khối lệnh của case đó, mà sẽ tiếp tục thực hiện các khối lệnh của case tiếp theo cho đến khi gặp từ khóa break hoặc dấu } cuối cùng của cấu trúc switch-case.
- Nên tránh việc lồng switch-case để code dễ đọc và hiệu quả hơn.
Dưới đây là sơ đồ khối mô tả hoạt động của lệnh switch-case:
Ví dụ minh họa
Dưới đây là một ví dụ sử dụng lệnh switch-case để in ra ngày trong tuần dựa trên giá trị nhập vào:
#include <stdio.h> int main() { int ngay; printf("Nhập ngày: "); scanf("%d", &ngay); switch (ngay) { case 2: printf("Thứ hai"); break; case 3: printf("Thứ ba"); break; case 4: printf("Thứ tư"); break; case 5: printf("Thứ năm"); break; case 6: printf("Thứ sáu"); break; case 7: printf("Thứ bảy"); break; case 8: printf("Chủ nhật"); break; default: printf("Chỉ được nhập từ 2 -> 8."); } }
Nếu nhập một giá trị không có trong các case, case default sẽ được thực thi.
Dưới đây là một ví dụ khác sử dụng kiểu char:
#include <stdio.h> int main () { char diem; printf("Nhập điểm: "); scanf("%c", &diem); switch(diem) { case 'A': printf("Xuất sắc!\n"); break; case 'B': case 'C': printf("Làm tốt!\n"); break; case 'D': printf("Qua môn!\n"); break; case 'F': printf("Cố gắng thêm!\n"); break; default: printf("Điểm không hợp lệ.\n"); } printf("Điểm của bạn là %c\n", diem); }
Ở ví dụ này, khi chọn B (không có break; sau), chương trình sẽ chạy tiếp sang khối lệnh của case C và in ra "Làm tốt!". Điều này có nghĩa là khi chọn B hoặc C đều cho ra một kết quả tương tự.
Với lệnh switch-case, chúng ta có một công cụ mạnh mẽ để xử lý các điều kiện và tạo ra code dễ đọc hơn. Hãy sử dụng switch-case một cách hiệu quả trong lập trình C của bạn!