Gráfico de comparação
Base para Comparação | if-else | interruptor |
---|---|---|
Basic | Qual instrução será executada depende da saída da expressão dentro da instrução if. | Qual declaraçã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 uma única expressão para várias opções. |
Testando | teste de instrução if-else para igualdade, bem como para expressão lógica. | teste de instrução switch apenas para igualdade. |
Avaliação | Se a instrução avaliar um inteiro, um caractere, um ponteiro ou um tipo de ponto flutuante ou um tipo booleano. | A instrução switch avalia apenas o caractere ou valor inteiro. |
Sequência de Execução | Ou se a instrução será executada ou outra instrução for executada. | switch statement executa um caso após o outro até que uma instrução break seja exibida ou o fim da instrução switch seja atingido. |
Execução Padrão | Se a condição dentro de instruções if for falsa, por padrão, a instrução else será executada, se criada. | Se a condição dentro das instruções switch não corresponder a nenhum dos casos, para essa instância, as instruções padrão serão executadas, se criadas. |
Edição | É difícil editar a instrução if-else, se a instrução if-else aninhada 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 a instruções de seleção no OOP. A forma geral das instruções if-else é a seguinte
if (expressão) {declaração (s)} mais {declaração (ões)}
onde "if" e "else" são as palavras-chave e as instruções podem ser uma única instrução ou um bloco de instruções. A expressão é avaliada como “verdadeira” para qualquer valor diferente de zero e para zero ela é “falsa”.
A expressão na instrução if pode conter um inteiro, caractere, ponteiro, ponto flutuante ou pode ser um tipo booleano. A instrução else é opcional em uma instrução if-else. Se a expressão retornar true, as instruções dentro da instrução if serão executadas e, se ela retornar false, as instruções dentro de outra instrução serão executadas e, caso uma instrução else seja não criada, nenhuma ação será executada e o controle do programa saltará. de uma declaração if-else.
Nos deixa entender com um exemplo.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "Eu escolho choclate escuro"; pausa; caso 2: cout << "você escolhe doces"; pausa; case 3: cout << "você escolhe o pirulito"; pausa; . . padrão cout << "você 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.
Principais diferenças entre if-else e switch
- Expression inside if statement decide se deve executar as instruções dentro de bloco ou bloco else. 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. No switch, você só tem uma expressão para as várias opções.
- A instrução if-esle verifica a igualdade, bem como 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 um caractere ou um tipo de dados inteiro.
- Seqüência de execução é como uma declaração sob se o bloco for executado ou instruções sob outro comando de bloco serão executadas. 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 será executado até o final da instrução switch.
- Se a expressão dentro do if for falsa, o comando statement within else será executado. 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 switch, pois elas 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 que, em instruções if-else aninhadas, torna-se difícil identificar as instruções a serem editadas.