ปัญหา
เขียนโปรแกรม C เพื่อตรวจสอบรหัสผ่านที่ป้อนโดยผู้ใช้ว่าถูกต้องหรือไม่ขึ้นอยู่กับ ID ของผู้ใช้โดยใช้กรณีสวิตช์ซ้อนกัน
วิธีแก้ปัญหา
วิธีแก้ปัญหาอธิบายไว้ด้านล่าง −
-
ในภาษา C เราสามารถเขียนสวิตซ์ด้านในที่วางอยู่ที่สวิตซ์ด้านนอก
-
ค่าเคสของสวิตช์ภายในและภายนอกสามารถมีค่าร่วมกันได้
กฎ
- นิพจน์ดำเนินการกับผลลัพธ์
- ต้องใช้ค่าคงที่และค่าที่ไม่ซ้ำสำหรับป้ายกำกับเคส
- ป้ายกำกับตัวพิมพ์ต้องลงท้ายด้วยเครื่องหมายทวิภาค ( :)
- ต้องรวมคีย์เวิร์ดตัวแบ่งไว้ในแต่ละกรณี
- มีป้ายกำกับเริ่มต้นได้เพียงป้ายเดียวเท่านั้น
- เราสามารถเขียนคำสั่ง switch ซ้อนกันได้หลายชุด
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อตรวจสอบรหัสผ่านที่ป้อนโดยผู้ใช้ว่าถูกต้องหรือไม่ขึ้นอยู่กับ ID ของเขา/เธอโดยใช้กรณีสวิตช์ที่ซ้อนกัน -
#include <stdio.h> int main(){ int userid; int pwd; printf("enter userid:\n"); scanf("%d",&userid); switch (userid){ case 1234: printf("enter password:\n "); scanf("%d", & pwd); switch (pwd){ case 0000: printf("Tutorials Point\n"); break; default: printf("incorrect password"); break; } break; default: printf("incorrect userid"); break; } }
ผลลัพธ์
คุณจะเห็นผลลัพธ์ต่อไปนี้ -
Run 1:enter userid: 1234 enter password: 0000 Tutorials Point Run 2: enter userid: 1234 enter password: 234 incorrect password