break
não é tecnicamente necessário após a última alternativa (o que, lembre-se, não precisa ser default
: é perfeitamente legal, e às vezes até útil colocar a ramificação default
primeiro); se o seu código cai até o final da instrução switch
ou breaks
out no final da última ramificação tem o mesmo resultado.
No entanto, eu ainda terminaria cada filial, incluindo a última, com uma declaração return
ou break
, por três motivos:
- Refatoração. Se todas as suas ramificações terminarem com
break
oureturn
, você poderá reorganizá-las sem alterar o significado. Isto torna menos provável que tal reordenação introduza uma regressão. - Consistência e menor surpresa. Coerência diz que seus ramos devem terminar de forma consistente, a menos que eles sejam realmente diferentes em significado. O Princípio de Menor Surpresa determina que coisas semelhantes devem ser semelhantes. Terminar a última ramificação de um bloco
switch
exatamente como os anteriores preenche ambos, o que facilita a leitura e a compreensão. Se você deixar de fora obreak
explícito, o último ramo será opticamente diferente (o que é especialmente importante para uma rápida varredura), e para que não seja realmente diferente, o leitor tem que descer ao nível básico de ler declarações individuais. - Protegendo-se. Se você criar o hábito de terminar todas as suas ramificações
switch
combreak
, ela ficará automática depois de um tempo, e você terá menos chances de acidentalmente esquecê-la quando isso for importante. Treinar-se para esperar que obreak
no final de cada ramificação também ajude a detectar instruçõesbreak
ausentes, o que é ótimo para depuração e solução de problemas.