cpp-condicional-if-else

Qué es y cómo usar el condicional IF-ELSE en C++

Los condicionales if e if-else son estructuras de control fundamentales en C++ que permiten tomar decisiones basadas en evaluaciones booleanas (true or false).

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;