งบเปลี่ยน C
กรณีทดสอบงบเปลี่ยนช่วยให้ตัวแปรเท่ากับมูลค่าหลายแต่ละค่าที่เรียกว่ากรณีและตัวแปรจะมีการทดสอบแต่ละกรณีสวิทช์ที่จะได้รับการตรวจสอบ
ไวยากรณ์
Cไวยากรณ์คำสั่งเปลี่ยนภาษา:
switch(expression){ case constant-expression : statement(s); break; /* 可选的 */ case constant-expression : statement(s); break; /* 可选的 */ /* 您可以有任意数量的 case 语句 */ default : /* 可选的 */ statement(s); }
งบเปลี่ยนจะต้องปฏิบัติตามกฎเหล่านี้:
- การแสดงออกงบเปลี่ยนต้องเป็นจำนวนเต็มหรือประเภทการแจงนับหรือประเภทชั้นซึ่งชั้นจะมีฟังก์ชั่นแปลงเดียวที่จะแปลงเป็นจำนวนเต็มหรือการแจงนับชนิด
- ในการสลับคุณสามารถมีจำนวนของงบกรณีใด ๆ แต่ละกรณีจะตามด้วยค่าเปรียบเทียบกับลำไส้ใหญ่
- กรณีของการแสดงออกคงต้องมีชนิดข้อมูลเดียวกันและสลับตัวแปรและมันจะต้องเป็นค่าคงที่หรือตัวอักษร
- เมื่อเป็นตัวแปรทดสอบเท่ากับกรณีของเวลาอย่างต่อเนื่องตามคำสั่งกรณีจะถูกดำเนินการจนกว่าจะพบคำสั่งหยุดพัก
- เมื่อมีคำสั่งพักจะพบสวิทช์ควบคุมการไหลยุติกระโดดยังบรรทัดถัดไปหลังจากคำสั่งสวิทช์
- ไม่ได้ทุกกรณีต้องมีการแบ่งถ้ามีคำสั่งกรณีที่ไม่ได้มีการหยุดพักเราจะยังคงควบคุมการไหลของกรณีที่ตามมาจนพบเลิก
- คำสั่งสวิทช์จะมีกรณีที่เริ่มต้นไม่จำเป็นก็จะปรากฏขึ้นในตอนท้ายของสวิทช์กรณีที่เริ่มต้นสามารถนำมาใช้ในทุกกรณีข้างต้นไม่เป็นความจริงเมื่อดำเนินงานแบ่งในงบกรณีที่เริ่มต้นไม่จำเป็นต้องใช้
แผนภูมิการไหล
ตัวอย่าง
#include <stdio.h> int main () { /* 局部变量定义 */ char grade = 'B'; switch(grade) { case 'A' : printf("很棒!\n" ); break; case 'B' : case 'C' : printf("做得好\n" ); break; case 'D' : printf("您通过了\n" ); break; case 'F' : printf("最好再试一下\n" ); break; default : printf("无效的成绩\n" ); } printf("您的成绩是 %c\n", grade ); return 0; }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
做得好 您的成绩是 B