Dominando Declarações Condicionais em C++: if, if...else e if...else Aninhado Explicados
if, if...else e if...else Aninhado em C++
Neste tutorial, aprenderemos sobre a declaração if...else para criar programas de tomada de decisão com a ajuda de exemplos.
Na programação de computadores, usamos a declaração if...else para executar um bloco de código sob certas condições e outro bloco sob condições diferentes.
Por exemplo, atribuir notas (A, B, C) baseadas nas notas obtidas por um aluno.
- se a porcentagem for acima de 90, atribuir nota A
- se a porcentagem for acima de 75, atribuir nota B
- se a porcentagem for acima de 65, atribuir nota C
Existem três formas de declarações if...else em C++.
ifstatementif...elsestatementif...else if...elsestatement
Declaração if em C++
A sintaxe da declaração if é:
if (condição) { // corpo da declaração if }
A declaração if avalia a condição dentro dos parênteses ( ).
- Se a
condiçãoavalia paratrue, o código dentro do corpo doifé executado. - Se a
condiçãoavalia parafalse, o código dentro do corpo doifé ignorado.
Nota: O código dentro de { } é o corpo da declaração if.

Exemplo 1: Declaração if em C++
// Programa para imprimir número positivo digitado pelo usuário // Se o usuário digitar um número negativo, ele é ignorado #include <iostream> using namespace std; int main() { int numero; cout << "Digite um inteiro: "; cin >> numero; // verifica se o número é positivo if (numero > 0) { cout << "Você digitou um inteiro positivo: " << numero << endl; } cout << "Esta declaração é sempre executada."; return 0; }
Saída 1
Digite um inteiro: 5 Você digitou um número positivo: 5 Esta declaração é sempre executada.
Quando o usuário digita 5, a condição numero > 0 avalia para true e a declaração dentro do corpo do if é executada.
Saída 2
Digite um número: -5 Esta declaração é sempre executada.
Quando o usuário digita -5, a condição numero > 0 avalia para false e a declaração dentro do corpo do if não é executada.
if...else em C++
A declaração if pode ter uma cláusula else opcional. Sua sintaxe é:
if (condição) { // bloco de código se condição for verdadeira } else { // bloco de código se condição for falsa }
A declaração if..else avalia a condição dentro dos parênteses.

Se a condição avalia true,
- o código dentro do corpo do
ifé executado - o código dentro do corpo do
elseé ignorado
Se a condição avalia false,
- o código dentro do corpo do
elseé executado - o código dentro do corpo do
ifé ignorado
Exemplo 2: Declaração if...else em C++
// Programa para verificar se um inteiro é positivo ou negativo // Este programa considera 0 como número positivo #include <iostream> using namespace std; int main() { int numero; cout << "Digite um inteiro: "; cin >> numero; if (numero >= 0) { cout << "Você digitou um inteiro positivo: " << numero << endl; } else { cout << "Você digitou um inteiro negativo: " << numero << endl; } cout << "Esta linha é sempre impressa."; return 0; }
Saída 1
Digite um inteiro: 4 Você digitou um inteiro positivo: 4. Esta linha é sempre impressa.
No programa acima, temos a condição numero >= 0. Se digitarmos número maior ou igual a 0, a condição avalia true.
Aqui, digitamos 4. Então, a condição é true. Portanto, a declaração dentro do corpo do if é executada.
Saída 2
Digite um inteiro: -4 Você digitou um inteiro negativo: -4. Esta linha é sempre impressa.
Aqui, digitamos -4. Então, a condição é false. Portanto, a declaração dentro do corpo do else é executada.
if...else...else if em C++
A declaração if...else é usada para executar um bloco de código entre duas alternativas. No entanto, se precisarmos escolher entre mais de duas alternativas, usamos a declaração if...else if...else.
A sintaxe da declaração if...else if...else é:
if (condição1) { // bloco de código 1 } else if (condição2){ // bloco de código 2 } else { // bloco de código 3 }
Aqui,
- Se
condição1avalia paratrue, obloco de código 1é executado. - Se
condição1avalia parafalse, entãocondição2é avaliada. - Se
condição2étrue, obloco de código 2é executado. - Se
condição2éfalse, obloco de código 3é executado.

Nota: Pode haver mais de uma declaração else if, mas apenas uma if e else.
Exemplo 3: if...else...else if em C++
// Programa para verificar se um inteiro é positivo, negativo ou zero #include <iostream> using namespace std; int main() { int numero; cout << "Digite um inteiro: "; cin >> numero; if (numero > 0) { cout << "Você digitou um inteiro positivo: " << numero << endl; } else if (numero < 0) { cout << "Você digitou um inteiro negativo: " << numero << endl; } else { cout << "Você digitou 0." << endl; } cout << "Esta linha é sempre impressa."; return 0; }
Saída 1
Digite um inteiro: 1 Você digitou um inteiro positivo: 1. Esta linha é sempre impressa.
Saída 2
Digite um inteiro: -2 Você digitou um inteiro negativo: -2. Esta linha é sempre impressa.
Saída 3
Digite um inteiro: 0 Você digitou 0. Esta linha é sempre impressa.
Neste programa, pegamos um número do usuário. Então usamos a escada if...else if...else para verificar se o número é positivo, negativo ou zero.
Se o número for maior que 0, o código dentro do bloco if é executado. Se o número for menor que 0, o código dentro do bloco else if é executado. Caso contrário, o código dentro do bloco else é executado.
if...else Aninhado em C++
Às vezes, precisamos usar uma declaração if dentro de outra declaração if. Isso é conhecido como declaração if aninhada.
Pense nisso como múltiplas camadas de declarações if. Há uma primeira, externa declaração if, e dentro dela há outra, interna declaração if. Sua sintaxe é:
// declaração if externa if (condição1) { // declarações // declaração if interna if (condição2) { // declarações } }
Notas:
- Podemos adicionar declarações
elseeelse ifà declaraçãoifinterna conforme necessário. - A declaração
ifinterna também pode ser inserida dentro da declaraçãoelseouelse ifexterna (se existirem). - Podemos aninhar múltiplas camadas de declarações
if.
Exemplo 4: if Aninhado em C++
// Programa C++ para descobrir se um inteiro é positivo, negativo ou zero // usando declarações if aninhadas #include <iostream> using namespace std; int main() { int num; cout << "Digite um inteiro: "; cin >> num; // condição if externa if (num != 0) { // condição if interna if (num > 0) { cout << "O número é positivo." << endl; } // condição else interna else { cout << "O número é negativo." << endl; } } // condição else externa else { cout << "O número é 0 e não é nem positivo nem negativo." << endl; } cout << "Esta linha é sempre impressa." << endl; return 0; }
Saída 1
Digite um inteiro: 35 O número é positivo. Esta linha é sempre impressa.
Saída 2
Digite um inteiro: -35 O número é negativo. Esta linha é sempre impressa.
Saída 3
Digite um inteiro: 0 O número é 0 e não é nem positivo nem negativo. Esta linha é sempre impressa.
No exemplo acima,
- Pegamos um inteiro como entrada do usuário e armazenamos na variável num.
- Então usamos uma declaração
if...elsepara verificar se num não é igual a0.- Se
true, então a interna declaraçãoif...elseé executada. - Se
false, o código dentro da externa condiçãoelseé executado, que imprime"O número é 0 e não é nem positivo nem negativo."
- Se
- A interna declaração
if...elseverifica se o número de entrada é positivo, ou seja, se num é maior que 0.- Se
true, imprimimos uma declaração dizendo que o número é positivo. - Se
false, imprimimos que o número é negativo.
- Se
Nota: Como você pode ver, if...else aninhado torna sua lógica complicada. Se possível, sempre tente evitar if...else aninhado.
Corpo do if...else Com Apenas Uma Declaração
Se o corpo do if...else tiver apenas uma declaração, você pode omitir { } no programa. Por exemplo, você pode substituir
int numero = 5; if (numero > 0) { cout << "O número é positivo." << endl; } else { cout << "O número é negativo." << endl; }
com
int numero = 5; if (numero > 0) cout << "O número é positivo." << endl; else cout << "O número é negativo." << endl;
A saída de ambos programas será a mesma.
Nota: Embora não seja necessário usar { } se o corpo do if...else tiver apenas uma declaração, usar { } torna seu código mais legível.
Mais sobre Tomada de Decisão
Em certas situações, um operador ternário pode substituir uma declaração if...else. Para saber mais, visite Operador Ternário em C++.
Se precisarmos fazer uma escolha entre mais de uma alternativa baseada em uma condição de teste dada, a declaração switch pode ser usada. Para saber mais, visite switch em C++.
Confira estes exemplos para aprender mais:
Programa C++ para Verificar se Número é Par ou Ímpar
Programa C++ para Verificar se um Caractere é Vogal ou Consoante.
Programa C++ para Encontrar o Maior Número Entre Três Números
Linguagem C
- Dominando Lógica Condicional em C#: If, If-Else, If-ElseIf e If Aninhados
- Classes e Objetos em C++: Guia Prático de Programação Orientada a Objetos
- Dominando Gerenciamento de Memória em C++: Uso Expert de new e delete
- Dominando Herança em C++: Public, Protected & Private Explicados
- Funções Amigas e Classes Amigas em C++: Dominando o Controle de Acesso
- Declarações, Indentação e Comentários em Python: Guia Claro
- Dominando Classes Aninhadas e Internas em Java: Tipos, Exemplos e Boas Práticas
- Guia Completo de Data e Hora em C++
- Dominando Sobrecarga em C++: Funções e Operadores Explicados
- Dominando I/O de Arquivos em C++: Leitura e Escrita com fstream