Los condicionales if
e if-else
son estructuras de control fundamentales en C++ que permiten tomar decisiones basadas en evaluaciones booleanas (true or false).
Si quieres aprender más sobre Condicionales
consulta el Curso de Introducción a la Programación leer más ⯈
El condicional IF
La estructura if
evalúa una expresión booleana y** ejecuta un bloque de código solo si la expresión resulta ser true
**. La sintaxis básica de un condicional if
en C++ es:
if (condicion) {
// Código a ejecutar si la condición es verdadera
}
Veámoslo con un ejemplo:
int numero = 10;
if (numero > 5) {
std::cout << "El número es mayor que 5" << std::endl;
}
En este ejemplo, la condición numero > 5
se evalúa como true
, por lo que el mensaje “El número es mayor que 5” se imprime en la consola.
El condicional IF ELSE
El condicional if
permite añadir un bloque else
de código alternativo que se ejecutará si la condición del if
es false
. La sintaxis básica es:
if (condicion) {
// Código a ejecutar si la condición es verdadera
} else {
// Código a ejecutar si la condición es falsa
}
Veámoslo con un ejemplo:
int numero = 3;
if (numero > 5) {
std::cout << "El número es mayor que 5" << std::endl;
} else {
std::cout << "El número no es mayor que 5" << std::endl;
}
En este caso, la condición numero > 5
es false
, por lo que se ejecuta el bloque de código dentro del else
, imprimiendo “El número no es mayor que 5” en la consola.
El condicional IF ELSE-IF
Para evaluar múltiples condiciones, se pueden encadenar múltiples bloques if / else-if / else
. Esto permite evaluar varias condiciones en secuencia hasta que una de ellas sea verdadera.
if (condicion1) {
// Código a ejecutar si la condición1 es verdadera
} else if (condicion2) {
// Código a ejecutar si la condición1 es falsa y la condición2 es verdadera
} else {
// Código a ejecutar si todas las condiciones anteriores son falsas
}
Condicionales anidados
Es posible anidar múltiples estructuras if
y if-else
para evaluar condiciones más complejas.
int numero = 0;
if (numero > 0) {
std::cout << "El número es positivo." << std::endl;
} else {
if (numero < 0) {
std::cout << "El número es negativo." << std::endl;
} else {
std::cout << "El número es cero." << std::endl;
}
}
Aunque anidar condicionales puede ser útil, también complican la legibilidad del código. No conviene abusar de ellos.
Uso de operadores lógicos en condicionales
Para evaluar múltiples condiciones dentro de un solo if
, se pueden utilizar operadores lógicos como &&
(AND lógico) y ||
(OR lógico).
Por ejemplo, el operador &&
evalúa como true
solo si ambas condiciones son verdaderas.
int numero = 10;
if (numero > 5 && numero < 15) {
std::cout << "El número está entre 5 y 15" << std::endl;
}
Mientras que el operador ||
evalúa como true
si al menos una de las condiciones es verdadera.
int numero = 20;
if (numero < 5 || numero > 15) {
std::cout << "El número es menor que 5 o mayor que 15" << std::endl;
}
Ejemplos prácticos
Determinar si un número es menor que 5 o mayor que 15
En este ejemplo, determinamos si un número es menor que 5, mayor que 15, o está en el rango intermedio.
int numero = 10;
if (numero > 15) {
std::cout << "El número es mayor que 15" << std::endl;
} else if (numero > 5) {
std::cout << "El número es mayor que 5 pero menor o igual a 15" << std::endl;
} else {
std::cout << "El número es 5 o menor" << std::endl;
}
Aquí, evaluamos secuencialmente las condiciones: numero > 15
es false
, pero numero > 5
es true
, por lo que se imprime “El número es mayor que 5 pero menor o igual a 15”.
Determinar el mayor de tres números
En este ejemplo, encontramos el mayor de tres números utilizando estructuras if-else.
int a = 5, b = 10, c = 3;
int mayor;
if (a > b && a > c) {
mayor = a;
} else if (b > a && b > c) {
mayor = b;
} else {
mayor = c;
}
std::cout << "El número mayor es: " << mayor << std::endl;
Verificar rangos de calificaciones
En este ejemplo, asignamos una letra de calificación basada en un puntaje numérico utilizando una serie de condiciones if-else.
int calificacion = 85;
std::string rango;
if (calificacion >= 90) {
rango = "A";
} else if (calificacion >= 80) {
rango = "B";
} else if (calificacion >= 70) {
rango = "C";
} else if (calificacion >= 60) {
rango = "D";
} else {
rango = "F";
}
std::cout << "La calificación es: " << rango << std::endl;