Lección 4

Bucles

Respuesta corta: un bucle repite un bloque hasta que una condición dice basta. Usa for cuando sabes cuántas veces; usa while cuando no.

for: tres partes, una línea

for (inicio; condición; paso) se lee: prepara, prueba antes de cada vuelta, avanza después de cada vuelta.

#include <iostream>
using namespace std;

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

    int suma = 0;
    for (int i = 1; i <= n; i++) {
        suma += i;
    }
    cout << "suma = " << suma << endl;
    return 0;
}

Con n = 5 es 1+2+3+4+5 = 15. Cambia n en la caja de entrada. Esta forma exacta es Suma de 1 a N.

while: cuando la cuenta es desconocida

Arrancar dígitos de un número es el while perfecto: no puedes saber de antemano cuántos hay.

#include <iostream>
using namespace std;

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

    int digitos = 0;
    while (n > 0) {
        n /= 10;      // arranca el último dígito
        digitos++;
    }
    cout << "digitos = " << digitos << endl;
    return 0;
}

Ese n /= 10 es la división entera haciendo el corte — la misma regla de la lección 2.

Bucles anidados: filas y columnas

#include <iostream>
using namespace std;

int main() {
    for (int fila = 1; fila <= 3; fila++) {
        for (int col = 1; col <= 4; col++) {
            cout << "(" << fila << "," << col << ") ";
        }
        cout << endl;
    }
    return 0;
}

El bucle interno se completa entero en cada vuelta del externo. Es la máquina detrás de Pirámide de asteriscos y Tabla de multiplicar.

Los tres bugs

Practica esta lección

Estos problemas ejercitan exactamente lo que acabas de leer: