ตราบเท่าที่ฉันจำได้ฉันได้หลีกเลี่ยงการใช้คำสั่ง switch fall-through จริงๆแล้วฉันจำไม่ได้เลยว่ามันเข้าสู่จิตสำนึกของฉันเป็นวิธีที่เป็นไปได้ในการทำสิ่งต่างๆในขณะที่มันถูกเจาะเข้ามาในหัวของฉันในช่วงต้นว่ามันไม่มีอะไรมากไปกว่าข้อผิดพลาดในคำสั่งสวิตช์ อย่างไรก็ตามวันนี้ฉันพบโค้ดบางอย่างที่ใช้โดยการออกแบบซึ่งทำให้ฉันสงสัยทันทีว่าทุกคนในชุมชนคิดอย่างไรเกี่ยวกับคำสั่งสวิตช์ที่ผิดพลาด
เป็นสิ่งที่ภาษาโปรแกรมไม่ควรอนุญาตอย่างชัดเจน (เช่น C # แม้ว่าจะมีวิธีแก้ปัญหา) หรือเป็นคุณลักษณะของภาษาใด ๆ ที่มีประสิทธิภาพเพียงพอที่จะปล่อยให้อยู่ในมือของโปรแกรมเมอร์หรือไม่?
แก้ไข: ฉันไม่ได้เจาะจงเพียงพอกับสิ่งที่ฉันหมายถึงโดยการตกผ่าน ฉันใช้ประเภทนี้บ่อยมาก:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
อย่างไรก็ตามฉันกังวลเกี่ยวกับเรื่องนี้
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something, but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
ด้วยวิธีนี้เมื่อใดก็ตามที่เคสเป็น 0 1 มันจะทำทุกอย่างในคำสั่ง switch ฉันเคยเห็นสิ่งนี้จากการออกแบบและฉันไม่รู้ว่าฉันเห็นด้วยหรือไม่ว่าควรใช้คำสั่ง switch ด้วยวิธีนี้ ฉันคิดว่าตัวอย่างโค้ดแรกเป็นประโยชน์และปลอดภัยมาก อย่างที่สองดูเหมือนจะอันตราย