Mô tả

Switch so sánh một biểu thức nguyên với một danh sách giá trị các số nguyên, các hằng kí tự hoặc biểu thức hằng. Mỗi giá trị  trong danh sách chính là một case (trường hợp) trong khối lệnh của switch. Ngoài ra, trong khối lệnh switch còn có thể có một default case (trường hợp mặc định) có thể có hoặc không. Mặt khác, trong mỗi trường hợp còn chứa các khối lệnh chờ được thực thi.

Cú pháp của cấu trúc rẽ nhánh switch…case

Muốn sử dụng cấu trúc switch…case, bạn dùng cú pháp như sau:

switch(expression){    
case value1:    
 //code to be executed;    
 break;  //optional  
case value2:    
 //code to be executed;    
 break;  //optional  
......    
    
default:     
 code to be executed if all cases are not matched;    
}    

Các qui tắc của lệnh switch tronng ngôn ngữ C

Biểu thức nguyên trong switch được tính toán và kiểm tra lần lượt với giá trị của từng case. Đầu tiên, nó sẽ được so sánh với giá trị của case đầu tiên, nếu bằng nhau thì sẽ thực hiện các lệnh (statement) trong case này cho đến khi nó gặp được từ khoá break. Khi đó, cấu trúc switch…case kết thúc. Chương trình sẽ thực hiện tiếp những dòng lệnh sau cấu trúc switch…case. Ngược lại, nếu như giá trị biểu thức nguyên không bằng giá trị case đầu tiên thì nó sẽ tiếp tục so sánh đến giá trị của case thứ hai và tiếp tục thực hiện như những bước trên. Giả sử, đến cuối cùng vẫn không tìm được giá trị bằng nó thì các khối lệnh trong default sẽ được thực hiện nếu như có tồn tại default.

Chú ý:
1) Biểu thức trong lệnh switch phải là kiểu dữ liệu số nguyên, ký tự.
2) case value phải là hằng số nguyên hoặc ký tự.
3) case value có thể sử dụng trong lệnh switch.
4) Lệnh break trong switch không bắt buộc.

Xem ví dụ sau: Kiểu dữ liệu nào hợp lệ trong lệnh switch:

int x,y,z;  
char a,b;  
float f;    
Lệnh Switch đúng Lệnh Switch sai Lệnh Switch đúng Lệnh Switch sai
switch(x) switch(f) case 3; case 2.5;
switch(x>y) switch(x+2.5) case 'a'; case x;
switch(a+b-2)   case 1+2; case x+2;
switch(func(x,y))   case 'x'>'y'; case 1,2,3;

Sơ đồ hoạt động của cấu trúc switch…case như sau:


Ví dụ lệnh switch :

#include <stdio.h>

int main()
{
    int a=0;
    printf("Nhap so a: ");
    scanf("%d",&a);
    switch(a)
    {
        case 10:
            printf("So nhap bang 10");
            break;
        case 50:
            printf("So nhap bang 50");
            break;
        case 100:
            printf("So nhap bang 100");
            break;
        default:
            printf("So nhap khong ban 10, 50, 100");
            
    }
    return 0;
}
Đăng nhập
Đăng ký
Hotline: 0904251826
x