Lección 8 · 8 de 20
Bucles while y do-while · C
Repita código en C mientras se cumpla una condición con while, y con do-while cuando el bloque deba ejecutarse al menos una vez.

`while` repite su bloque mientras la condición sea verdadera. El café empieza a 90 grados y cada vuelta pierde un 10 % (coffee *= 0.9); cuando baja de 60, la condición coffee > 60.0 deja de cumplirse y el bucle termina. minute cuenta las vueltas.
Dentro del bucle algo tiene que cambiar para que la condición llegue a ser falsa. En la cuenta atrás es seconds--; si lo olvidara, el bucle no terminaría nunca (un bucle infinito).
`do-while` comprueba la condición al final, así que el bloque se ejecuta al menos una vez. Para contar las cifras de 2026, cada vuelta suma una cifra y divide el número entre 10 (división entera): 202, 20, 2 y 0. Con do-while, el número 0 también cuenta como una cifra; con un while normal daría cero cifras.
Fíjese en el punto y coma que cierra } while (number > 0);: en do-while es obligatorio.
Código · main.c
#include <stdio.h>int main(void) { // while repeats its block as long as the condition is true. double coffee = 90.0; int minute = 0; while (coffee > 60.0) { minute++; coffee *= 0.9; // it loses 10% of its heat every minute printf("Minute %d: %.1f degrees\n", minute, coffee); } printf("Ready to drink after %d minutes.\n", minute); // A countdown. int seconds = 5; while (seconds > 0) { printf("%d... ", seconds); seconds--; } printf("Lift-off!\n"); // do-while checks at the end, so the block runs at least once. // Counting digits: even 0 has one digit. int number = 2026, digits = 0; do { digits++; number /= 10; } while (number > 0); printf("2026 has %d digits.\n", digits); return 0;}Salida · cc main.c -o main && ./main
Minute 1: 81.0 degrees Minute 2: 72.9 degrees Minute 3: 65.6 degrees Minute 4: 59.0 degrees Ready to drink after 4 minutes. 5... 4... 3... 2... 1... Lift-off! 2026 has 4 digits.
Para recordar
while (condición)comprueba antes de cada vuelta.- Algo dentro del bucle debe acercarlo al final.
do { ... } while (condición);se ejecuta al menos una vez.do-whiletermina con punto y coma.
Ejercicio
Cambie number a 0 y compruebe que el resultado es una cifra. Después, use un while para saber cuántos años tardan 1000 euros al 5 % anual en superar los 1500.