Bài 22. Lệnh Switch Case Trong C

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

  1. Video hướng dẫn lệnh switch case
  2. Cách hoạt động của cấu trúc switch case
  3. Lệnh goto trong C

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ác case.
  • 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ụng break 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ới expression.

Dưới đây là sơ đồ khối mô tả hoạt động của lệnh switch case:

Bài 23. Lệnh switch case trong C
Sơ đồ khối của lệnh switch case, nguồn: programiz.com

Bài tập thực hành

/*Nhập vào 2 số nguyên a, bNhập vào phép toán +, -, *, /Thực hiện tính toán theo phép toán nhập vào với hai số a, b

Ví dụ:

+ 2 3 => In ra 2 + 3

*/

Lời giải tham khảo sử dụng lệnh switch case:#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.

Bài 23. Lệnh switch case trong C
Cách hoạt động của lệnh goto, nguồn: programiz.com

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

  1. https://stackoverflow.com/questions/2158759/
  2. https://stackoverflow.com/questions/767821/
  3. https://www.programiz.com/c-programming/c-switch-case-statement

Từ khóa » Cách Dùng Switch Case