Os casos de troca quase sempre devem ter um default
caso.
Razões para usar um default
1.Para 'pegar' um valor inesperado
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. Para lidar com ações 'padrão', onde os casos são para comportamento especial.
Você vê muito isso em programas orientados a menus e em scripts do shell bash. Você também pode ver isso quando uma variável é declarada fora da caixa de seleção, mas não inicializada, e cada caso a inicializa para algo diferente. Aqui, o padrão também precisa inicializá-lo para que o código de linha que acessa a variável não apresente erro.
3. Para mostrar a alguém lendo seu código que você cobriu esse caso.
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.
}
Este foi um exemplo simplificado demais, mas o ponto é que alguém que lê o código não deve se perguntar por variable
que não pode ser algo diferente de 1 ou 2.
O único caso em que posso pensar em NÃO usar default
é quando o switch está verificando algo em que é óbvio que todas as outras alternativas podem ser ignoradas com alegria
switch(keystroke)
{
case 'w':
// move up
case 'a':
// move left
case 's':
// move down
case 'd':
// move right
// no default really required here
}