Diferença entre if-else e switch

Autor: Laura McKinney
Data De Criação: 3 Abril 2021
Data De Atualização: 5 Poderia 2024
Anonim
Diferença entre if-else e switch - Tecnologia
Diferença entre if-else e switch - Tecnologia

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".

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para Comparaçãose-maisinterruptor
BasicQual 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ãoA 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.
TesteTeste de instrução if-else para igualdade e expressão lógica.teste de instrução switch apenas para igualdade.
AvaliaçãoA 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çãoSe 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ãoSe 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.

  1. 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.
  2. 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.
  3. A instrução If-esle verifica a igualdade e a expressão lógica. Por outro lado, o switch verifica apenas a igualdade.
  4. 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.
  5. 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.
  6. 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.
  7. É 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.