Chào các bạn đây là bài số 7, trong bài viết này mình sẽ chia sẻ cho các bạn về câu lệnh Switch case trong C cơ bản.
Ở bài số 6, chúng ta tìm hiểu câu lệnh rẽ nhánh if-else trong C. Nếu các bạn chưa xem bài 6 thì xem lại tại đây nhé.
Câu lệnh Switch case trong C cơ bản
Câu lệnh switch case cho phép chúng ta thực thi một khối code trong số nhiều lựa chọn .
Có nghĩa là bạn có nhiều khối code trong chương trình, nhưng bạn chỉ muốn chạy một khối code trong một đống khối code đó thì bạn sử dụng câu lệnh Switch case trong C.
Ở bài trước chúng ta có tìm hiểu qua câu lệnh if-else, nếu chúng ta không muốn sử dụng câu lệnh if-else thì chúng ta có thể sử dụng câu lệnh switch case để thay thế.
Switch Statement Flowchart

Syntax of switch…case.
switch (expression)
{
case constant1:
// statements or code block
break;
case constant2:
// statements or code block
break;
.
.
.
default:
// default statements or code block
}
Câu lệnh Switch case nó hoạt động như thế nào?
- Kiểm tra switch expression (biểu thức).
- Giá trị của biểu thức sẽ so sánh với giá trị constant của các case.
- Nếu giá trị biểu thức giống với một trong các constant của các case thì nó sẽ thực thi câu lệnh hoặc khối code của case tương ứng.
- Câu lệnh hoặc khối code nó thực thi đến khi gặp break thì nó sẽ dừng lại và thoát khỏi switch.
- Câu lệnh default là câu lệnh mặc định khi giá trị biểu thức không giống case nào trong các case contants thì câu lệnh hoặc khối code trong default sẽ thực thi.
Ví dụ 1 : Simple Calculator ()
// Program to create a simple calculator
#include <stdio.h>
int main() {
char operation;
double n1, n2;
printf("Enter an operator (+, -, *, /): ");
scanf("%c", &operation);
printf("Enter two operands: ");
scanf("%lf %lf",&n1, &n2);
switch(operation)
{
case '+':
printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2);
break;
// operator doesn't match any case constant +, -, *, /
default:
printf("Error! operator is not correct");
}
return 0;
}
Kết quả :

Giờ chúng ta giải thích cho đoạn code ví dụ 1 chút nhé
Khi người dùng nhập vào dấu ‘-‘ và nó được lưu trữ trong biến operator, sau đó người dùng nhập vào hai toán hạng lần lượt là 20.5 và 10.5 và nó được lưu trữ trong biến n1 và n2 tương đương.
Do biến operator là dấu ‘-‘ thì đoạn code bên trên nó sẽ trúng vào trường hợp case ‘-‘, cho nên những khối code bên trong case ‘-‘ sẽ được thực thi, đến khi nó gặp câu lệnh break thì nó sẽ thoát khỏi câu lệnh Switch.
Tổng kết
Câu lệnh Switch – case thì nó cũng tương đương với câu lệnh if – else, tuy nhiên trong một số trường hợp chúng ta sử dụng nhiều câu lệnh if – else – if thì chúng ta thấy code khá là nhiều và nó kiểm tra nhiều lần, nhìn code cũng không được đẹp cho lắm, lúc này chúng ta nên sử dụng Switch – case để nhìn code nó đẹp hơn.
Khi chúng ta nhìn code nó đẹp hơn thì lập trình mới sướng …. 🙂 🙂 .
Trên đây là ý kiến cá nhân của mình, các bạn có ý kiến giống mình không, hay là có ý kiến khác, nếu các bạn có ý kiến khác thì xin vui lòng comment bên dưới nhé.
Qua bài viết này mình hi vọng có thể giúp cho các bạn mới hiểu hơn về câu lệnh switch-case trong lập trình c.
Chúc các bạn thực hành thành công.
Xem video và làm theo ví dụ để hiểu hơn tại đây nhé:
Nguồn tham khảo :