Obudowy przełączników powinny prawie zawsze mieć default
obudowę.
Powody, dla których warto użyć default
1. Aby „złapać” nieoczekiwaną wartość
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. Aby obsłużyć „domyślne” akcje, w których przypadki dotyczą zachowania specjalnego.
Widać to DUŻO w programach sterowanych przez menu i skryptach powłoki bash. Możesz to również zobaczyć, gdy zmienna jest zadeklarowana poza przypadkiem przełączania, ale nie jest inicjowana, a każda sprawa inicjuje ją na coś innego. Tutaj domyślna również musi ją zainicjować, aby kod linii, który uzyskuje dostęp do zmiennej, nie powodował błędu.
3. Aby pokazać osobie czytającej Twój kod, że opisałeś tę sprawę.
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.
}
To był zbyt uproszczony przykład, ale chodzi o to, że ktoś czytający kod nie powinien się zastanawiać, dlaczego variable
nie może być czymś innym niż 1 lub 2.
Jedynym przypadkiem, o którym mogę NIE myśleć, default
jest sytuacja, w której przełącznik sprawdza coś, co jest dość oczywiste, że każdą inną alternatywę można z radością zignorować
switch(keystroke)
{
case 'w':
// move up
case 'a':
// move left
case 's':
// move down
case 'd':
// move right
// no default really required here
}