Lệnh switch case là một cấu trúc điều khiển & rẽ nhánh hoàn toàn có thể được thay thế bằng cấu trúc if else. Tuy nhiên, việc sử dụng switch case sẽ giúp code của chúng ta dễ viết và dễ đọc hơn; Một điều nữa là sử dụng switch case có vẻ như cho hiệu năng tốt hơn so với sử dụng if else. Bạn có thể xem rõ hơn về ưu nhược điểm của dùng lệnh switch case ở phần tài liệu tham khảo
Video hướng dẫn lệnh switch case
Cách hoạt động của cấu trúc switch case
Dưới đây là cú pháp của lệnh switch case:
switch (expression) { case constant1: // statements break; case constant2: // statements break; . . . default: // default statements }
expression
phải bắt buộc là giá trị hằng, có thể là biểu thức nhưng kết quả cần là hằng số.- Trong đó,
expression
sẽ được tính toán 1 lần duy nhất và sau đó so sánh với các giá trị của cáccase
. - Nếu có 1 case nào đó khớp giá trị, các khối lệnh tương ứng sau case đó sẽ được thực hiện cho tới khi gặp lệnh
break
. Do đó, nếu chúng ta không sử dụngbreak
thì tất cả các case kể từ case khớp giá trị đều được thực hiện. - Case
default
sẽ được thực hiện nếu không có case nào khớp giá trị vớiexpression
.
Dưới đây là sơ đồ khối mô tả hoạt động của lệnh switch case:
Bài tập thực hành
Ví dụ:
+ 2 3 => In ra 2 + 3
*/
#include <stdio.h> int main() { int a, b; char opera; printf("nNhap phep toan: "); scanf("%c", &opera); printf("nNhap vao 2 so a, b: "); scanf("%d%d", &a, &b); switch (opera) { case '+': printf("%d + %d = %d", a, b, a + b); break; case '-': printf("%d - %d = %d", a, b, a - b); break; case '*': printf("%d * %d = %d", a, b, a * b); break; case '/': if(b == 0){ printf("Khong the chia cho 0!"); }else{ printf("%d / %d = %.2f", a, b, (float)a / b); } break; default: printf("Khong co phep toan %c!", opera); break; } }
Kết quả chạy chương trình:
PS G:c_courcesday_22> .SwitchStatement.exe Nhap phep toan: + Nhap vao 2 so a, b: 2 3 2 + 3 = 52 - 3 = -1 PS G:c_courcesday_22> .SwitchStatement.exe Nhap phep toan: * Nhap vao 2 so a, b: 2 3 2 * 3 = 6
Lệnh goto trong C
Lệnh goto
cho phép code của bạn nhảy đến thực hiện ở vị trí label
bất kỳ của chương trình mà không cần nhất định phải theo thứ tự từ trên xuống. Do tính chất nhảy “lung tung” chẳng giống ai nên lệnh goto
không được khuyến khích sử dụng.
Cú pháp của lệnh goto
như sau:
goto label; ... .. ... ... .. ... label: statement;
Trong đó, label
là một định danh. Hình dưới đây cho thấy code đang chạy nếu gặp lệnh goto
sẽ bỏ tiến trình sau nó mà nhảy tới nơi label
để chạy tiếp.
Ví dụ về việc sử dụng lệnh goto
trong C:
#include <stdio.h> int main(){ int count = 0; go_here: printf("Lap trinh khong kho!n"); if(count < 5){ count++; goto go_here; } }
Kết quả chạy chương trình:
PS G:c_courcesday_22> .GoToStatement.exe Lap trinh khong kho! Lap trinh khong kho! Lap trinh khong kho! Lap trinh khong kho! Lap trinh khong kho! Lap trinh khong kho!
Tài liệu tham khảo
Để lại một bình luận