Diferença entre if-else e switch
Contente
"If-else" e "switch" são instruções de seleção. As instruções de seleção transferem o fluxo do programa para o bloco específico de instruções com base em se a condição é "verdadeira" ou "falsa". A diferença fundamental entre as instruções if-else e switch é que a instrução if-else "seleciona a execução das instruções com base na avaliação da expressão nas instruções if". As instruções do switch "selecionam a execução da instrução frequentemente com base em um comando do teclado".
- Gráfico de comparação
- Definição
- Principais diferenças
- Conclusão
Gráfico de comparação
Base para Comparação | se-mais | interruptor |
---|---|---|
Basic | Qual instrução será executada depende da saída da expressão dentro da instrução if. | Qual instrução será executada é decidida pelo usuário. |
Expressão | A instrução if-else usa várias instruções para várias opções. | A instrução switch usa expressão única para várias opções. |
Teste | Teste de instrução if-else para igualdade e expressão lógica. | teste de instrução switch apenas para igualdade. |
Avaliação | A instrução if avalia o tipo inteiro, caractere, ponteiro ou ponto flutuante ou tipo booleano. | A instrução switch avalia apenas o caractere ou o valor inteiro. |
Sequência de Execução | Se a instrução será executada ou a instrução será executada. | A instrução switch executa um caso após o outro até que uma instrução break seja exibida ou o final da instrução switch seja atingido. |
Execução padrão | Se a condição dentro de instruções for falsa, por padrão, a instrução else será executada se criada. | Se a condição dentro das instruções do switch não corresponder a nenhum dos casos, nesse caso, as instruções padrão serão executadas se criadas. |
Edição | É difícil editar a instrução if-else, se a instrução aninhada if-else for usada. | É fácil editar casos de switch, pois eles são reconhecidos facilmente. |
Definição de if-else
As instruções if-else pertencem às instruções de seleção no OOP. A forma geral das instruções if-else é a seguinte
if (expressão) {declaração (s)} else {declaração (s)}
onde "if" e "else" são as palavras-chave e as instruções podem ser uma única declaração ou um bloco de instruções. A expressão é avaliada como "true" para qualquer valor diferente de zero e para zero é avaliada como "false".
A expressão if pode conter um número inteiro, caractere, ponteiro, ponto flutuante ou pode ser do tipo booleano. A instrução else é opcional em uma instrução if-else. Se a expressão retornar true, as instruções internas se if forem executadas e se retornar false as instruções internas serão executadas e, no caso de uma instrução else não ser criada, nenhuma ação será executada e o controle do programa sairá de uma declaração if-else.
Vamos entender com um exemplo.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i =" < Definição de switch
As instruções switch são uma declaração de seleção de múltipla escolha. A forma geral da instrução switch é a seguinte
switch (expressão) {case constant1: declaração (ões); quebrar; case constant2: declaração (ões); quebrar; case constant3: declaração (ões); quebrar; . . declaração (s) padrão (s); }
Onde a expressão avalia um número inteiro ou constantes de caracteres. A expressão aqui avalia apenas a igualdade. A expressão é verificada em relação às constantes presentes nas instruções de caso. Se uma correspondência for encontrada, as instruções associadas a esse caso serão executadas, até que ocorra uma "interrupção". Como a instrução break é opcional nas instruções case, se a instrução break não estiver presente, a execução não será interrompida até o final da instrução switch.
A expressão contém apenas uma única expressão. A instrução switch geralmente usa um comando de teclado para escolher uma entre as múltiplas declarações de caso.
int c; cout << "escolha o valor de 1 a 3"; cin >> i; switch (i) {case 1: cout << "você escolhe choclate escuro"; quebrar; caso 2: cout << "você escolhe doces"; quebrar; caso 3: cout << "você escolhe o lollypop"; quebrar; . . cout padrão << "você não escolhe nada"; }
Aqui, o valor de "i" decidirá qual caso será executado, se um usuário fornecer o valor de "i" diferente de 1, 2 ou 3, o caso padrão será executado.
- A expressão inside if declina se deve executar as instruções inside if block ou under else block. Por outro lado, a expressão dentro da instrução switch decide qual caso executar.
- Você pode ter várias instruções if para múltipla escolha de instruções. Na opção, você tem apenas uma expressão para as várias opções.
- A instrução If-esle verifica a igualdade e a expressão lógica. Por outro lado, o switch verifica apenas a igualdade.
- A instrução if avalia o tipo inteiro, caractere, ponteiro ou ponto flutuante ou tipo booleano. Por outro lado, a instrução switch avalia apenas caracteres ou um tipo de dados inteiro.
- A sequência de execução é como uma instrução em se o bloco será executado ou instruções em outra instrução de bloco será executada. Por outro lado, a expressão na instrução switch decide qual caso executar e se você não aplicar uma instrução break após cada caso, ela será executada até o final da instrução switch.
- Se a expressão inside for if for false, a instrução inside else block será executada. Se a expressão dentro da instrução switch for falsa, as instruções padrão serão executadas.
- É difícil editar instruções if-else, pois é tedioso rastrear onde a correção é necessária. Por outro lado, é fácil editar instruções de opção, pois são fáceis de rastrear.
Conclusão:
A instrução switch é fácil de editar, pois criou casos separados para instruções diferentes, enquanto nas instruções if-else aninhadas fica difícil identificar as instruções a serem editadas.