C++ si, si... más y Anidado si... más
C++ si, si... más y Anidado si... más
En este tutorial, aprenderemos sobre la instrucción if...else para crear programas de toma de decisiones con la ayuda de ejemplos.
En la programación de computadoras, usamos el if...else
instrucción para ejecutar un bloque de código bajo ciertas condiciones y otro bloque de código bajo diferentes condiciones.
Por ejemplo, asignar calificaciones (A, B, C) en función de las calificaciones obtenidas por un alumno.
- si el porcentaje está por encima de 90 , asigne la calificación A
- si el porcentaje es superior a 75 , asigne la calificación B
- si el porcentaje está por encima de 65 , asigne la calificación C
Hay tres formas de if...else
sentencias en C++.
if
declaraciónif...else
declaraciónif...else if...else
declaración
Declaración if de C++
La sintaxis del if
declaración es:
if (condition) {
// body of if statement
}
El if
declaración evalúa el condition
dentro de los paréntesis ( )
.
- Si el
condition
evalúa atrue
, el código dentro del cuerpo deif
se ejecuta. - Si el
condition
evalúa afalse
, el código dentro del cuerpo deif
se omite.
{ }
es el cuerpo del if
declaración.

Ejemplo 1:declaración if de 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;
}
Salida 1
Enter an integer: 5 You entered a positive number: 5 This statement is always executed.
Cuando el usuario ingresa 5
, la condición number > 0
se evalúa a true
y la declaración dentro del cuerpo de if
se ejecuta.
Salida 2
Enter a number: -5 This statement is always executed.
Cuando el usuario ingresa -5
, la condición number > 0
se evalúa a false
y la declaración dentro del cuerpo de if
no se ejecuta.
C++ si...otro
El if
declaración puede tener un else
opcional cláusula. Su sintaxis es:
if (condition) {
// block of code if condition is true
}
else {
// block of code if condition is false
}
El if..else
declaración evalúa el condition
dentro del paréntesis.

Si el condition
evalúa true
,
- el código dentro del cuerpo de
if
se ejecuta - el código dentro del cuerpo de
else
se salta de la ejecución
Si el condition
evalúa false
,
- el código dentro del cuerpo de
else
se ejecuta - el código dentro del cuerpo de
if
se salta de la ejecución
Ejemplo 2:Declaración if...else de 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;
}
Salida 1
Enter an integer: 4 You entered a positive integer: 4. This line is always printed.
En el programa anterior, tenemos la condición number >= 0
. Si introducimos el número mayor o igual a 0 , entonces la condición evalúa true
.
Aquí, ingresamos 4 . Entonces, la condición es true
. Por lo tanto, la declaración dentro del cuerpo de if
se ejecuta.
Salida 2
Enter an integer: -4 You entered a negative integer: -4. This line is always printed.
Aquí, ingresamos -4 . Entonces, la condición es false
. Por lo tanto, la declaración dentro del cuerpo de else
se ejecuta.
C++ if...else...else if sentencia
El if...else
La instrucción se utiliza para ejecutar un bloque de código entre dos alternativas. Sin embargo, si necesitamos elegir entre más de dos alternativas, usamos el if...else if...else
declaración.
La sintaxis del if...else if...else
declaración es:
if (condition1) {
// code block 1
}
else if (condition2){
// code block 2
}
else {
// code block 3
}
Aquí,
- Si
condition1
evalúa atrue
, elcode block 1
se ejecuta. - Si
condition1
evalúa afalse
, luegocondition2
se evalúa. - Si
condition2
estrue
, elcode block 2
se ejecuta. - Si
condition2
esfalse
, elcode block 3
se ejecuta.

else if
declaración pero solo una if
y else
declaraciones.
Ejemplo 3:C++ si... si no... si no
// 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;
}
Salida 1
Enter an integer: 1 You entered a positive integer: 1. This line is always printed.
Salida 2
Enter an integer: -2 You entered a negative integer: -2. This line is always printed.
Salida 3
Enter an integer: 0 You entered 0. This line is always printed.
En este programa, tomamos un número del usuario. Luego usamos el if...else if...else
escalera para verificar si el número es positivo, negativo o cero.
Si el número es mayor que 0
, el código dentro del if
se ejecuta el bloque. Si el número es menor que 0
, el código dentro del else if
se ejecuta el bloque. De lo contrario, el código dentro del else
se ejecuta el bloque.
C++ anidado si... más
A veces, necesitamos usar un if
instrucción dentro de otro if
declaración. Esto se conoce como anidado if
declaración.
Piense en ello como múltiples capas de if
declaraciones. Hay un primer if
externo declaración, y dentro de ella hay otra, interior if
declaración. Su sintaxis es:
// outer if statement
if (condition1) {
// statements
// inner if statement
if (condition2) {
// statements
}
}
Notas:
- Podemos agregar
else
yelse if
declaraciones alif
interno declaración según sea necesario. - El
if
interior declaración también se puede insertar dentro del exteriorelse
oelse if
declaraciones (si existen). - Podemos anidar varias capas de
if
declaraciones.
Ejemplo 4:C++ anidado si
// 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;
}
Salida 1
Enter an integer: 35 The number is positive. This line is always printed.
Salida 2
Enter an integer: -35 The number is negative. This line is always printed.
Salida 3
Enter an integer: 0 The number is 0 and it is neither positive nor negative. This line is always printed.
En el ejemplo anterior,
- Tomamos un número entero como entrada del usuario y lo almacenamos en la variable num .
- Luego usamos un
if...else
declaración para verificar si num no es igual a0
.- Si
true
, luego el internoif...else
se ejecuta la sentencia. - Si
false
, el código dentro del externoelse
se ejecuta la condición, que imprime"The number is 0 and it is neither positive nor negative."
- Si
- El interior
if...else
declaración comprueba si el número de entrada es positivo, es decir, si num es mayor que 0 .- Si
true
, luego imprimimos una declaración que dice que el número es positivo. - Si
false
, imprimimos que el número es negativo.
- Si
if...else
anidado complica tu lógica. Si es posible, siempre debe intentar evitar el if...else
anidado .
Cuerpo de if...else con solo una instrucción
Si el cuerpo de if...else
tiene solo una declaración, puede omitir { }
en el programa. Por ejemplo, puede reemplazar
int number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
}
con
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
La salida de ambos programas será la misma.
{ }
si el cuerpo de if...else
tiene solo una declaración, usando { }
hace que su código sea más legible.
Más sobre la toma de decisiones
En ciertas situaciones, un operador ternario puede reemplazar un if...else
declaración. Para obtener más información, visite Operador ternario de C++.
Si necesitamos hacer una elección entre más de una alternativa basada en una condición de prueba dada, el switch
Se puede utilizar la declaración. Para obtener más información, visite Cambio de C++.
Consulte estos ejemplos para obtener más información:
Programa C++ para comprobar si el número es par o impar
Programa en C++ para comprobar si un carácter es vocal o consonante.
Programa C++ para encontrar el número más grande entre tres números
Lenguaje C
- C# if, if...else, if...else if y declaración if anidada
- C++ while y do...while Bucle
- Clases y objetos de C++
- Gestión de memoria C++:nuevo y eliminar
- Herencia pública, protegida y privada de C++
- Función amiga de C++ y Clases amigas
- Declaración, sangría y comentarios de Python
- Clase interna y anidada de Java
- C++ Fecha y hora
- Sobrecarga de C++ (operador y función)
- Archivos y flujos de C++