Случаи переключения должны почти всегда иметь 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
}