Lección 3

Tomar decisiones

Respuesta corta: if (condición) ejecuta el bloque siguiente solo si la condición es verdadera; else ejecuta la alternativa. Una condición es una expresión que vale true o false.

Las comparaciones producen bool

OperadorSignificaEjemplo
==iguala == 5
!=distintoa != 5
< > <= >=ordena <= 10

Puedes imprimir una comparación para ver su 1/0 — una forma rápida de comprobar qué piensa C++:

#include <iostream>
using namespace std;

int main() {
    int x = 7;
    cout << (x > 5) << endl;    // 1 (verdadero)
    cout << (x == 5) << endl;   // 0 (falso)
    cout << (x != 5) << endl;   // 1
    return 0;
}

Elección de tres vías

else if encadena pruebas en orden y se detiene en la primera verdadera:

#include <iostream>
using namespace std;

int main() {
    int nota;
    cin >> nota;

    if (nota >= 90)      cout << "A" << endl;
    else if (nota >= 80) cout << "B" << endl;
    else if (nota >= 70) cout << "C" << endl;
    else                 cout << "F" << endl;
    return 0;
}

Prueba 95, 85, 75, 60 en la caja de entrada. El orden importa: si nota >= 90 es cierto, las pruebas siguientes no corren.

Combinar condiciones

&& es y (ambas), || es o (al menos una), ! es no. La regla del año bisiesto es la combinación clásica:

#include <iostream>
using namespace std;

int main() {
    int anio;
    cin >> anio;

    bool bisiesto = (anio % 4 == 0 && anio % 100 != 0) || (anio % 400 == 0);
    if (bisiesto) cout << "año bisiesto" << endl;
    else          cout << "no es bisiesto" << endl;
    return 0;
}

Prueba 1900 (no), 2000 (sí), 2024 (sí). El porqué de la regla del siglo está en este problema.

Las trampas

Practica esta lección

Estos problemas ejercitan exactamente lo que acabas de leer: