So sánh if else và switch case

Trong bài học này chúng ta học thêm một cấu trúc rẽ nhánh nữa có phần ngắn gọn hơn so với if và else if đó là switch case.

NỘI DUNG :

  • Switch Case
  • Video Tutorial

main

1.Switch Case

Switch case sử dụng tương đối giống if và else if, nó cũng giúp bạn có thể kiểm tra nhiều điều kiện để thực hiện các rẽ nhánh khác nhau.

Cú pháp :

switch(value){

case c1:  
    break;  
case c2:  
    break;  
....  
case cn:  
    break;  
default:  
}

Cách hoạt động của switch case đó là sẽ so sánh lần lượt giá trị của value bên trong switch với giá trị của các biến trong các case là c1, c2, ... cn. Nếu giá trị của value bằng giá trị của case nào thì khối lệnh bên trong case đó sẽ được thực hiện.

Nếu giá trị của value không bằng bất cứ giá trị nào trong các case thì khối lệnh trong default sẽ được thực hiện, default trong switch case tương tự như else trong if else bạn đã học ở bài trước.

Ví dụ 1:

include "stdio.h"

int main(){

int n = 3;  
switch(n){  
    case 1:  
        printf("ONE\n");  
        break;  
    case 2:  
        printf("TWO\n");  
        break;  
    case 3:  
        printf("THREE\n");  
        break;  
    case 4:  
        printf("FOUR\n");  
        break;  
    default:  
        printf("DEFAULT\n");  
}  
} Output : THREE

Chú ý : Các câu lệnh bên trong case sẽ được kết thúc bởi câu lệnh break. Nếu không có câu lệnh break thì khi code trong nhánh nào được thực hiện, switch case sẽ không kết thúc ngay như else if mà sẽ thực hiện luôn các câu lệnh trong các rẽ nhánh bên dưới.

Ví dụ 2 :

include "stdio.h"

int main(){

int n = 2;  
switch(n){  
    case 1:  
        printf("ONE\n");  
    case 2:  
        printf("TWO\n");  
    case 3:  
        printf("THREE\n");  
    case 4:  
        printf("FOUR\n");  
    default:  
        printf("DEFAULT\n");  
}  
} Output : TWO THREE FOUR DEFAULT

Ví dụ 3 : Nhập vào toán tử +, -, *, / và in ra kết quả tương ứng với 2 số a, b

include "stdio.h"

int main(){

int a = 20, b = 5;  
char op;  
scanf("%c", &op);  
switch(op){  
    case '+':  
        printf("%d\n", a + b);  
        break;  
    case '-':  
        printf("%d\n", a - b);  
        break;  
    case '*':  
        printf("%d\n", a * b);  
        break;  
    case '/':  
        printf("%d\n", a / b);  
        break;  
    default:  
        printf("INVALID INPUT");  
}  
}


Ví dụ 4 : Nhập tháng và năm in ra số ngày của tháng, chú ý tháng 2 của năm nhuận có 29 ngày

include "stdio.h"

int main(){

int m, y;  
printf("Nhap thang, nam : ");  
scanf("%d%d", &m, &y);  
switch(m){  
    case 1: case 3: case 5: case 7: case 8: case 10 : case 12:  
        printf("31\n");  
        break;  
    case 4: case 6 : case 9 : case 11:  
        printf("30\n");  
        break;  
    case 2:  
        if((y % 400 == 0) && (y % 4 == 0 && y % 100 != 0)){  
            printf("29\n");  
        }  
        else{  
            printf("28\n");  
        }  
        break;  
    default:  
        printf("Du lieu khong hop le !\n");  
}  
}


Xem thêm bài giảng của mình về Switch Case trong C :

4X8aXn0dMMM