Sob que condições devo usar uma escada if-else-if em vez de um switch ao codificar uma ramificação com vários caminhos?
Resposta:
Em geral, use uma escada if-else-if quando as condições que controlam o processo de seleção não dependerem de um único valor.
Exemplo:
if(x < 10) // …
else if(y != 0) // …
else if(!done) // …
Essa sequência não pode ser recodificada com um switch porque todas as três condições envolvem variáveis diferentes – e tipos diferentes. Que variável controlaria o switch?
Você também terá que usar uma escada if-else-if ao testar valores de ponto flutuante ou outros objetos que não sejam de tipos válidos em uma expressão switch.