C++ if, if...else e aninhado if...else
C++ if, if...else e aninhado if...else
Neste tutorial, aprenderemos sobre a instrução if...else para criar programas de tomada de decisão com a ajuda de exemplos.
Na programação de computadores, usamos o if...else
instrução para executar um bloco de código sob certas condições e outro bloco de código sob condições diferentes.
Por exemplo, atribuir notas (A, B, C) com base nas notas obtidas por um aluno.
- se a porcentagem estiver acima de 90 , atribua nota A
- se a porcentagem estiver acima de 75 , atribua nota B
- se a porcentagem estiver acima de 65 , atribua nota C
Existem três formas de
if...else
declarações em C++. if
declaraçãoif...else
declaraçãoif...else if...else
declaração
Instrução if C++
A sintaxe do
if
afirmação é:
if (condition) {
// body of if statement
}
O
if
declaração avalia o condition
dentro dos parênteses ( )
. - Se o
condition
avalia paratrue
, o código dentro do corpo deif
é executado. - Se o
condition
avalia parafalse
, o código dentro do corpo deif
é ignorado.
Observação: O código dentro de
{ }
é o corpo do if
declaração. 
Exemplo 1:instrução if C++
// Program to print positive number entered by the user
// If the user enters a negative number, it is skipped
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
// checks if the number is positive
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
}
Saída 1
Enter an integer: 5 You entered a positive number: 5 This statement is always executed.
Quando o usuário digita
5
, a condição number > 0
é avaliado para true
e a instrução dentro do corpo de if
É executado. Saída 2
Enter a number: -5 This statement is always executed.
Quando o usuário insere
-5
, a condição number > 0
é avaliado para false
e a instrução dentro do corpo de if
não é executado. C++ if...else
O
if
declaração pode ter um opcional else
cláusula. Sua sintaxe é:
if (condition) {
// block of code if condition is true
}
else {
// block of code if condition is false
}
O
if..else
declaração avalia o condition
dentro do parêntese. 
Se o
condition
avalia true
, - o código dentro do corpo de
if
é executado - o código dentro do corpo de
else
é ignorado da execução
Se o
condition
avalia false
, - o código dentro do corpo de
else
é executado - o código dentro do corpo de
if
é ignorado da execução
Exemplo 2:instrução if...else C++
// Program to check whether an integer is positive or negative
// This program considers 0 as a positive number
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
}
Saída 1
Enter an integer: 4 You entered a positive integer: 4. This line is always printed.
No programa acima, temos a condição
number >= 0
. Se inserirmos o número maior ou igual a 0 , a condição avalia true
. Aqui, entramos em 4 . Portanto, a condição é
true
. Portanto, a instrução dentro do corpo de if
É executado. Saída 2
Enter an integer: -4 You entered a negative integer: -4. This line is always printed.
Aqui, inserimos -4 . Portanto, a condição é
false
. Portanto, a instrução dentro do corpo de else
É executado. C++ if...else...else if instrução
O
if...else
A instrução é usada para executar um bloco de código entre duas alternativas. No entanto, se precisarmos escolher entre mais de duas alternativas, usamos o if...else if...else
declaração. A sintaxe do
if...else if...else
afirmação é:
if (condition1) {
// code block 1
}
else if (condition2){
// code block 2
}
else {
// code block 3
}
Aqui,
- Se
condition1
avalia paratrue
, ocode block 1
é executado. - Se
condition1
avalia parafalse
, entãocondition2
é avaliado. - Se
condition2
étrue
, ocode block 2
é executado. - Se
condition2
éfalse
, ocode block 3
é executado.

Observação: Pode haver mais de um
else if
instrução, mas apenas um if
e else
declarações. Exemplo 3:C++ if...else...else if
// Program to check whether an integer is positive, negative or zero
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
}
Saída 1
Enter an integer: 1 You entered a positive integer: 1. This line is always printed.
Saída 2
Enter an integer: -2 You entered a negative integer: -2. This line is always printed.
Saída 3
Enter an integer: 0 You entered 0. This line is always printed.
Neste programa, pegamos um número do usuário. Em seguida, usamos o
if...else if...else
escada para verificar se o número é positivo, negativo ou zero. Se o número for maior que
0
, o código dentro do if
bloco é executado. Se o número for menor que 0
, o código dentro do else if
bloco é executado. Caso contrário, o código dentro do else
bloco é executado. C++ Aninhado if...else
Às vezes, precisamos usar um
if
declaração dentro de outro if
declaração. Isso é conhecido como if
aninhado declaração. Pense nisso como várias camadas de
if
declarações. Há um primeiro if
externo declaração, e dentro dela há outro if
interno declaração. Sua sintaxe é:
// outer if statement
if (condition1) {
// statements
// inner if statement
if (condition2) {
// statements
}
}
Observações:
- Podemos adicionar
else
eelse if
instruções para oif
interno declaração conforme necessário. - O
if
interno declaração também pode ser inserida dentro doelse
externo ouelse if
declarações (se existirem). - Podemos aninhar várias camadas de
if
declarações.
Exemplo 4:C++ aninhado if
// C++ program to find if an integer is positive, negative or zero
// using nested if statements
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
// outer if condition
if (num != 0) {
// inner if condition
if (num > 0) {
cout << "The number is positive." << endl;
}
// inner else condition
else {
cout << "The number is negative." << endl;
}
}
// outer else condition
else {
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This line is always printed." << endl;
return 0;
}
Saída 1
Enter an integer: 35 The number is positive. This line is always printed.
Saída 2
Enter an integer: -35 The number is negative. This line is always printed.
Saída 3
Enter an integer: 0 The number is 0 and it is neither positive nor negative. This line is always printed.
No exemplo acima,
- Pegamos um inteiro como entrada do usuário e o armazenamos na variável num .
- Em seguida, usamos um
if...else
instrução para verificar se num não é igual a0
.- Se
true
, então o internoif...else
instrução é executada. - Se
false
, o código dentro do externoelse
condição é executada, que imprime"The number is 0 and it is neither positive nor negative."
- Se
- O interior
if...else
verifica se o número de entrada é positivo, ou seja, se num é maior que 0 .- Se
true
, então imprimimos uma declaração dizendo que o número é positivo. - Se
false
, imprimimos que o número é negativo.
- Se
Observação: Como você pode ver,
if...else
aninhado torna sua lógica complicada. Se possível, você deve sempre tentar evitar if...else
aninhados . Corpo de if...else com apenas uma declaração
Se o corpo de
if...else
tem apenas uma instrução, você pode omitir { }
no programa. Por exemplo, você pode substituir
int number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
}
com
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
A saída de ambos os programas será a mesma.
Observação: Embora não seja necessário usar
{ }
se o corpo de if...else
tem apenas uma instrução, usando { }
torna seu código mais legível. Mais sobre tomada de decisão
Em determinadas situações, um operador ternário pode substituir um
if...else
declaração. Para saber mais, visite Operador Ternário C++. Se precisarmos fazer uma escolha entre mais de uma alternativa com base em uma determinada condição de teste, o
switch
declaração pode ser usada. Para saber mais, visite a opção C++. Confira estes exemplos para saber mais:
Programa C++ para verificar se o 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
- C# if, if...else, if...else if e aninhado if declaração
- Classes e objetos C++
- Gerenciamento de memória C++:novo e excluir
- Herança pública, protegida e privada C++
- Função de amigo C++ e classes de amigo
- Declaração Python, Recuo e Comentários
- Java aninhado e classe interna
- Data e hora do C++
- Sobrecarga de C++ (operador e função)
- Arquivos e fluxos C++