Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Giải thích switch case lồng nhau (nested switch) trong C


Vấn đề

Viết chương trình C kiểm tra mật khẩu nhập vào có hợp lệ dựa trên ID dùng nested switch case.

Giải pháp

  • Trong C, có thể viết switch bên trong switch khác.
  • Giá trị case của switch trong và ngoài có thể trùng nhau.

Quy tắc

  • Biểu thức cho ra kết quả.
  • Case phải dùng hằng số duy nhất.
  • Case kết thúc bằng dấu hai chấm (:).
  • Mỗi case cần từ khóa break.
  • Chỉ có một default.
  • Có thể lồng nhiều switch.

Ví dụ

Chương trình kiểm tra mật khẩu theo ID dùng nested switch:

#include <stdio.h> 
int main() { 
    int userid, pwd; 
    printf("Nhập userid:\n"); 
    scanf("%d", &userid); 
    switch (userid) { 
        case 1234: 
            printf("Nhập password:\n"); 
            scanf("%d", &pwd); 
            switch (pwd) { 
                case 0000: 
                    printf("Tutorials Point\n"); 
                    break; 
                default: 
                    printf("Sai mật khẩu"); 
                    break; 
            } 
            break; 
        default: 
            printf("Sai userid"); 
            break; 
    } 
}

Kết quả

Lần 1: userid: 1234, password: 0000 → Tutorials Point 
Lần 2: userid: 1234, password: 234 → Sai mật khẩu