กรณีที่สวิทช์ควรเกือบมักจะมีdefault
กรณี
เหตุผลในการใช้ default
1. การ 'จับ' ค่าที่ไม่คาดคิด
switch(type)
{
case 1:
//something
case 2:
//something else
default:
// unknown type! based on the language,
// there should probably be some error-handling
// here, maybe an exception
}
2. เพื่อจัดการการกระทำ 'เริ่มต้น' โดยมีกรณีและปัญหาสำหรับพฤติกรรมพิเศษ
คุณเห็นสิ่งนี้มากมายในโปรแกรมที่ใช้เมนูและสคริปต์เชลล์ bash คุณอาจเห็นสิ่งนี้เมื่อมีการประกาศตัวแปรนอกเคส แต่ไม่ได้กำหนดค่าเริ่มต้นและแต่ละกรณีจะกำหนดค่าเริ่มต้นเป็นสิ่งที่แตกต่างกัน ที่นี่ค่าเริ่มต้นจำเป็นต้องเริ่มต้นด้วยเช่นกันเพื่อให้รหัสบรรทัดที่เข้าถึงตัวแปรนั้นไม่เกิดข้อผิดพลาด
3. เพื่อแสดงให้คนที่อ่านรหัสของคุณทราบว่าคุณครอบคลุมกรณีดังกล่าว
variable = (variable == "value") ? 1 : 2;
switch(variable)
{
case 1:
// something
case 2:
// something else
default:
// will NOT execute because of the line preceding the switch.
}
นี่เป็นตัวอย่างที่ง่ายเกินไป แต่ประเด็นคือคนที่อ่านรหัสไม่ควรสงสัยว่าทำไมvariable
ไม่เป็นอย่างอื่นที่ไม่ใช่ 1 หรือ 2
กรณีเดียวที่ฉันคิดว่าไม่ควรใช้default
คือเมื่อสวิตช์กำลังตรวจสอบบางสิ่งที่มันค่อนข้างชัดเจนว่าทุก ๆ ทางเลือกอื่นสามารถเพิกเฉยได้อย่างมีความสุข
switch(keystroke)
{
case 'w':
// move up
case 'a':
// move left
case 's':
// move down
case 'd':
// move right
// no default really required here
}