C Switch Case Statement

C Switch Case Statements



คำสั่ง switch—หรือเพียงแค่คำสั่ง case—คือกลไกการควบคุมโฟลว์ที่กำหนดการทำงานของโปรแกรมตามค่าของตัวแปรหรือนิพจน์

การใช้คำสั่ง switch ทำให้คุณสามารถทดสอบเงื่อนไขได้หลายเงื่อนไข และดำเนินการเฉพาะบล็อกที่เจาะจงหากเงื่อนไขนั้นเป็นจริง แม้ว่ามันจะทำงานคล้ายกับคำสั่ง if…else if….else แต่ไวยากรณ์นั้นอ่านและจัดการง่ายกว่าและง่ายกว่า







บทช่วยสอนนี้เน้นที่การแสดงวิธีสร้างและทำงานกับคำสั่งสวิตช์ในการเขียนโปรแกรม C



การใช้งานพื้นฐาน

คำสั่ง switch นั้นง่ายต่อการใช้งาน ไวยากรณ์ทั่วไปมีดังต่อไปนี้:



สวิตซ์ (ด่วน) {
casevar1:
// รหัส
หยุดพัก;
casevar2:
//รหัส
หยุดพัก;
casevar3:
// รหัส
หยุดพัก;
casevarN:
// รหัส
หยุดพัก;
...
….
….
ค่าเริ่มต้น:
//รหัส
}

มันทำงานอย่างไร

คำสั่ง switch ใช้ตรรกะง่ายๆ ในการประเมินแต่ละกรณีและปัญหา





เริ่มต้นด้วยการประเมินนิพจน์ภายในบล็อกสวิตช์ จากนั้นจะเปรียบเทียบค่าจากบล็อกสวิตช์กับแต่ละบล็อกเคส

เมื่อระบุตำแหน่งที่ตรงกันภายในหนึ่งในบล็อคกรณีและปัญหาที่กำหนดไว้ มันจะรันโค้ดภายในบล็อกนั้นจนกว่าจะพบคีย์เวิร์ดตัวแบ่ง



หากไม่พบการจับคู่ในบล็อคกรณีและปัญหาที่กำหนดไว้ คำสั่งดังกล่าวจะข้ามไปยังคำสั่งเริ่มต้นและรันโค้ดภายใน บล็อกเริ่มต้นเป็นทางเลือกและละเว้นได้หากไม่มีการดำเนินการที่จำเป็นสำหรับสถานการณ์ที่ไม่ตรงกัน

บันทึก: เป็นการดีที่จะทำให้แน่ใจว่าคำสั่ง case แต่ละอันสิ้นสุดลงด้วยคำสั่ง break เพื่อป้องกันไม่ให้คำสั่งทั้งหมดหลังจากบล็อกที่ตรงกันทำงาน

C ตัวอย่างคำชี้แจงกรณีสวิตช์

ให้เราอธิบายคำสั่ง switch ด้วยตัวอย่างง่ายๆ:

#รวม

intmain() {
intที่ไหน= 5;
สวิตซ์ (ที่ไหน) {
case3:
printf ('ค่าคือ 3');
หยุดพัก;
case4:
printf ('ค่าคือ 4');
หยุดพัก;
case5:
printf ('ค่าคือ 5');
หยุดพัก;
ค่าเริ่มต้น:
printf ('ค่าไม่ใช่ทั้ง 3, 4 หรือ 5');
}
ผลตอบแทน0;
}

ถ้าเราเรียกใช้ตัวอย่างข้างต้น เราควรได้ผลลัพธ์ที่คล้ายกับด้านล่าง:

ค่าคือ5

แผนภาพการไหลต่อไปนี้แสดงตรรกะของโปรแกรมข้างต้น:

คำชี้แจงสวิตช์ที่ซ้อนกัน

C ช่วยให้คุณมีคำสั่งสวิตช์ที่ซ้อนกันภายในคำสั่งสวิตช์ คำสั่งสวิตช์ที่ซ้อนกันเชื่อมโยงกับค่าของสวิตช์ภายนอก

พิจารณาตัวอย่างต่อไปนี้:

#รวม

intmain() {
intแผนก= 5;
intaccess_code= ปี ค.ศ. ๒๐๒๘;
สวิตซ์ (แผนก) {
case1:
สวิตซ์ (รหัสการเข้าถึง) {
case2021:
printf ('[+] รหัสการเข้าถึงที่ถูกต้อง!');
หยุดพัก;
ค่าเริ่มต้น:
printf ('[-] รหัสการเข้าถึงไม่ถูกต้อง!');
}
หยุดพัก;
ค่าเริ่มต้น:
printf ('[-] อนุญาตเฉพาะแผนก 1 เท่านั้น!');
}
ผลตอบแทน0;
}

ในตัวอย่างข้างต้น เราใช้คำสั่ง switch สองคำสั่ง ขั้นแรกตรวจสอบว่า dept ที่ระบุคือ 1 หรือไม่ หากเป็น true จะไปยังบล็อกสวิตช์ถัดไปและตรวจสอบรหัสการเข้าถึงที่ถูกต้อง

ถ้าค่า dept ไม่ใช่ค่าเดียว การดำเนินการจะย้ายไปยังบล็อกเริ่มต้น

ต่อไปนี้คือการดำเนินการของรหัสด้านบนด้วยรหัสแผนกและการเข้าถึงที่ถูกต้องและไม่ถูกต้อง

ในตัวอย่างแรก ทั้ง dept และ access code นั้นถูกต้อง ดังนั้นการดำเนินการจะไม่ถึงบล็อกเริ่มต้น

ในตัวอย่างที่สอง ทั้งแผนกและรหัสการเข้าถึงไม่ถูกต้อง ดังนั้นการดำเนินการจะข้ามไปที่บล็อกเริ่มต้นแรกทันที

หลักเกณฑ์สำหรับคำสั่งเปลี่ยน

ต่อไปนี้คือแนวทางโดยย่อที่ควรทราบเมื่อสร้างคำสั่งสวิตช์ใน C

  1. คุณต้องส่งนิพจน์ไปยังคีย์เวิร์ดสวิตช์
  2. งบกรณีต้องตรวจสอบค่าที่ไม่ซ้ำกัน
  3. ยุติการบล็อกแต่ละกรณีโดยใช้คีย์เวิร์ด break
  4. คุณสามารถซ้อนคำสั่งสวิตช์หลายรายการได้
  5. คุณสามารถรวมคำสั่งเริ่มต้นเมื่อจำเป็นต้องมีการดำเนินการสำหรับกรณีและปัญหาที่ไม่ตรงกัน

บทสรุป

คู่มือนี้จะแนะนำคุณเกี่ยวกับพื้นฐานการสร้างและการใช้คำสั่งสวิตช์ C คำสั่ง Switch มีประโยชน์เมื่อคุณมีกรณีการตัดสินใจที่ซับซ้อนที่อาจนำไปใช้ได้ยากกับคำสั่งและ if else