Vantagens de usar estruturas de caso para programar várias decisões alternativas

As vantagens são simples e fáceis de entender e as desvantagens são que apenas caracteres e números podem ser avaliados, não strings.

Uma instrução switch ou case permite compactar um bloco de código de múltipla escolha que, de outra forma, seria uma longa série de instruções “ELSEIF” em algo mais organizado.

A vantagem, a meu ver, é que é mais fácil para você escrever e mais fácil para os outros lerem. Se também conservar os ciclos computacionais, suspeito que o ganho seja mínimo.

A única desvantagem em que posso pensar é que você não pode usá-los para testar várias condições. As instruções IF podem ser feitas para fazer praticamente qualquer coisa se você for bom com AND, OR e parênteses.

A instrução switch é uma abordagem de linguagem de programação que oferece vantagens para programas baseados em menus

A principal vantagem é que neste o usuário pode comparar um não. Dos valores de uma variável por uma única instrução switch e usando vários casos. Isso torna a detecção de erros mais fácil, pois o programa é dividido em módulos por esses casos. Geralmente é usado quando muitos valores de uma variável devem ser comparados.

Sua desvantagem é que ele só pode verificar a igualdade. Os usuários não podem comparar dados mais ou menos do que o valor da variável. Em segundo lugar, é restrito a tipo inteiro de dados, não pode funcionar com float ou double

Tenha cuidado ao usar a instrução switch porque se você não usar break após cada caso, haverá uma queda livre no programa e você não obterá os resultados apropriados

Em poucas palavras, legibilidade do código. É muito mais limpo do que a árvore else-if.

No entanto, existem algumas técnicas a serem consideradas para realmente fazer este trabalho para você:

  • Faça uma coisa. Em outras palavras, para um caso individual, em vez de adicionar um grande bloco de código, chame uma função. Separe suas preocupações e deixe o switch fazer o que faz de melhor: controlar o tráfego.
  • Ao usar enums, evite usar um caso “padrão” ou “senão”. A beleza das opções enum é que você não obtém apenas um código mais limpo, mas também uma aplicação melhor. Ter um padrão é uma saída fácil que pode levar a descuidos ao adicionar novos valores de enum. Em vez disso, tente levar em conta todas as possibilidades e fazer o compilador gritar se você perder uma.
  • Evite escapar antecipadamente. Eu tenho ido e voltado sobre isso sozinho. Há uma certa eficiência em usar um “retorno” de uma instrução switch-case. Mas também existe um perigo. Isso torna a caça de insetos mais difícil. Pessoalmente, gostaria apenas de fazer pausas e organizar o código para sair naturalmente no final da função.

Então, vantagens:

  • legibilidade
  • grande aplicação ao usar enums

Desvantagens:

  • Infelizmente, não podemos usar interruptores em todos os lugares. Existem muitos cenários em que eles simplesmente não funcionam, dependendo do idioma. Se você estiver verificando intervalos ou várias condições ou valores não numéricos, else-if pode ser sua única opção. (Não sei se isso conta como uma desvantagem, mas honestamente não consigo pensar em mais nada.)

A seguir estão algumas vantagens e desvantagens da declaração de caso Switch. (em linguagem C): -

Vantagens: -

  • Mais fácil de ler do que a instrução if-else equivalente
  • Mais eficiente do que a instrução if-else equivalente (o destino pode ser calculado examinando a tabela).
  • Mais fácil de depurar.
  • Mais fácil de manter.
  • Profundidade fixa: uma sequência de instruções "if else if" produz aninhamento profundo, tornando a compilação mais difícil (especialmente em código gerado automaticamente).
  • Potencial de execução mais rápida.
  • Além disso, uma implementação otimizada pode ser executada muito mais rapidamente do que as instruções if-else, porque geralmente é implementada usando uma tabela de ramificação indexada. Desvantagens: -
  • Não funciona com flutuadores, cordas, etc.
  • Não funciona com intervalos (a menos que explicitamente enumerado)
  • Não funciona com condições variáveis.
  • Quando implementado com fall-through como o caminho padrão, as instruções switch / case são uma fonte frequente de bugs até mesmo entre programadores experientes, dado que, na prática, o "break" é quase sempre o caminho desejado, mas não o comportamento padrão do switch / case.