C # คำสั่งสวิทช์
กรณีทดสอบงบเปลี่ยนช่วยให้ตัวแปรเท่ากับมูลค่าหลายแต่ละค่าที่เรียกว่ากรณีและตัวแปรจะมีการทดสอบแต่ละกรณีสวิทช์ที่จะได้รับการตรวจสอบ
ไวยากรณ์
สวิทช์คำสั่งใน C # ไวยากรณ์:
สวิทช์ (expression) { กรณีคงแสดงออก: คำสั่ง (s); break; กรณีคงแสดงออก: คำสั่ง (s); break; / * คุณสามารถมีจำนวนของงบกรณีใด ๆ * / ค่าเริ่มต้น: / * ตัวเลือก * / คำสั่ง (s); break; }
งบเปลี่ยนจะต้องปฏิบัติตามกฎเหล่านี้:
- การแสดงออกงบเปลี่ยนต้องเป็นจำนวนเต็มหรือประเภทการแจงนับหรือประเภทชั้นซึ่งชั้นจะมีฟังก์ชั่นแปลงเดียวที่จะแปลงเป็นจำนวนเต็มหรือการแจงนับชนิด
- ในการสลับคุณสามารถมีจำนวนของงบกรณีใด ๆ แต่ละกรณีจะตามด้วยค่าเปรียบเทียบกับลำไส้ใหญ่
- กรณีของการแสดงออกคงต้องมีชนิดข้อมูลเดียวกันและสลับตัวแปรและต้องเป็นค่าคงที่
- เมื่อเป็นตัวแปรทดสอบเท่ากับกรณีของเวลาอย่างต่อเนื่องตามคำสั่งกรณีจะถูกดำเนินการจนกว่าจะพบคำสั่งหยุดพัก
- เมื่อมีคำสั่งพักจะพบสวิทช์ควบคุมการไหลยุติกระโดดยังบรรทัดถัดไปหลังจากคำสั่งสวิทช์
- ไม่ได้ทุกกรณีต้องมีการแบ่งถ้ามีคำสั่งกรณีที่เป็นที่ว่างเปล่าก็ไม่อาจมีหยุดพักเราจะยังคงควบคุมการไหลของกรณีที่ตามมาจนพบเลิก
- C # ไม่ได้รับอนุญาตให้ดำเนินการต่อจากส่วนสลับไปสลับส่วนถัดไปถ้ามีคำสั่งกรณีที่มีงบการประมวลผลก็จะต้องมีการแบ่งเพิ่มเติมหรือคำสั่งกระโดด
- คำสั่งสวิทช์จะมีกรณีที่เริ่มต้นไม่จำเป็นก็จะปรากฏขึ้นในตอนท้ายของสวิทช์กรณีที่เริ่มต้นสามารถนำมาใช้ในทุกกรณีข้างต้นไม่เป็นความจริงเมื่อดำเนินงานแบ่งในงบกรณีที่เริ่มต้นไม่จำเป็นต้องใช้
- C # ไม่สนับสนุนฉลากอย่างชัดเจนจากกรณีที่หนึ่งไปยังอีกกรณีหนึ่งตลอดฉลาก หากคุณต้องการการสนับสนุนจาก C # ฉลากกรณีอย่างชัดเจนผ่านไปกรณีป้ายอื่นข้ามไปสามารถใช้สวิทช์หรือกรณีที่เริ่มต้นไปที่
แผนภูมิการไหล
ตัวอย่าง
การใช้ระบบ การตัดสินใจ namespace { Program รุ่น { เป็นโมฆะคง main (String args []) { / * นิยามตัวแปรท้องถิ่น * / เกรดถ่าน = 'B'; สวิทช์ (เกรด) { กรณีที่ 'A': Console.WriteLine ( "ดีมาก!"); break; กรณี B: กรณีที่ 'C': Console.WriteLine ( "ทำดี"); break; กรณีที่ 'D': Console.WriteLine ( "คุณผ่าน"); break; กรณี F: Console.WriteLine ( "ที่ดีที่สุดลองอีกครั้ง"); break; ค่าเริ่มต้น: Console.WriteLine ( "ผลที่ไม่ถูกต้อง"); break; } Console.WriteLine ( "ความสำเร็จของคุณคือ {0}" เกรด); Console.ReadLine (); } } }
เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:
คะแนนของคุณเป็นอย่างดี B