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