Lệnh switch – case

Toán tử switch cho phép ta nhảy vào 1 hoặc nhiều case dựa vào biểu thức nguyên.

switch(biểu thức nguyên)
{
case n1:
    Khối lệnh 1;
    break;
case n2:
    Khối lệnh 2;
    break;
…
case nk:
    Khối lệnh k;
    break;
default:
    Khối lệnh (k+1);
}

Chú ý: biểu thức trong toán tử switch phải là biểu thức nguyên.
• Hoạt động của switch( ) phụ thuộc vào giá trị của biểu thức nguyên
– Nếu giá trị này bằng ni thì chương trình sẽ nhảy tới case nk và thực hiện khối lệnh k
– Nếu giá trị này không thỏa mãn tất cả các giá trị của các case thì cách làm việc của chương trình lại phụ thuộc vào sự có mặt của default:
– Nếu có mặt default, thì chương trình sẽ nhảy đến case default
– Nếu không có default, thì sẽ nhảy ra khỏi toán tử switch
• Kết thúc toán tử switch
– Chương trình sẽ ra khỏi toán tử switch khi gặp lệnh break hoặc gặp dấu } cuối cùng của switch.
Chú ý : Khi nhảy đến 1 case nào đó, thì hoạt động tiếp theo của chương trình phụ thuộc vào các câu lệnh trong case này. Chương trình sẽ thực hiện được các câu lệnh cho đến khi gặp từ khóa break,goto,return.
– Nếu không có từ khóa break trong các case thì chương trình thực hiện hết case ni sẽ nhảy tiếp đến case n(i+1).
– Nếu mỗi khối lệnh kết thúc bằng từ khóa break thì toán tử switch sẽ chỉ thực hiện 1 trong các khối lệnh.

Ví dụ 1: Nhập vào 2 số nguyên a,b và toán tử + – * / và sau đó thực hiện với toán tử nhập vào

#include <stdio.h>
#include <conio.h>

void main()
{
    int a, b;
    char toantu;
    printf("\n Nhap vao so a = ");
    scanf("%d", &a);
    printf("\n Nhap vao so b = ");
    scanf("%d", &b);
    printf("\n Nhap toan tu = ");
    toantu = getchar();

    switch(toantu)
    {
    case '+':
        printf("\n a + b = %d", a + b);
        break;
    case '-':
        printf("\n a - b = %d", a - b);
        break;
    case '*':
        printf("\n a * b = %d", a * b);
        break;
    case '/':
        if(b != 0)
            printf("\n a / b = %f", float(a)/b);
        else
            printf("\n Khong xac dinh");
        break;
    default:
        printf("\n Toan hang khong hop le");
    }
    getch();
}

Kết quả:

Nhap vao so a = 4
Nhap vao so b = 5
Nhap toan tu = /
a / b = 0.800000

Ví dụ 2:

#include <stdio.h>
#include <conio.h>

void main()
{
    int n;
    printf("\n Nhap vao so n = ");
    scanf("%d", &n);
    switch(n)
    {
    case 1:
        printf("\nVietNam");
    case 2:
       printf("\nPhap");
       break;
    case 3:
       printf("\nAnh");
    default :
       printf("\nHaLan");
    }
    getch();
}

Kết quả:

Nhap vao so n = 1
VietNam
Phap
Nhap vao so n = 2
Phap
Nhap vao so n = 3
Anh
HaLan

2 Comments on Lệnh switch – case

Leave a Reply to VietVH Cancel reply