Lección 8 · 8 de 20
while y do-while · C++
Repita código en C++ con while mientras se cumpla una condición, con do-while al menos una vez, y controle el bucle con break y continue.

`while` repite un bloque mientras la condición sea verdadera. Ahorrando 120 euros al mes, el bucle da vueltas hasta que savings llega a 500: en 5 meses junta 600. Algo dentro del bucle tiene que acabar cambiando la condición; si no, no terminaría nunca.
La cuenta atrás cabe en una línea: seconds-- usa el valor actual para escribirlo y después le resta uno. Cuando llega a 0, la condición deja de cumplirse y el programa sigue con Lift off!.
`do { ... } while (condición);` comprueba la condición al final, así que el bloque se ejecuta al menos una vez: el jugador tiene su turno aunque energy valga 0. Fíjese en el punto y coma detrás del while.
`while (true)` sería un bucle infinito, pero `break` lo termina en cuanto n pasa de 10. `continue` salta directamente a la vuelta siguiente sin escribir nada, y así se omiten el 3, el 6 y el 9.
Código · main.cpp
#include <iostream>int main() { // while repeats the block as long as the condition is true. int savings = 0, months = 0; while (savings < 500) { savings += 120; months++; } std::cout << "Goal reached in " << months << " months: " << savings << " euros\n"; // A countdown: seconds-- uses the value, then subtracts one. int seconds = 5; while (seconds > 0) std::cout << seconds-- << "... "; std::cout << "Lift off!\n"; // do-while runs the block once before checking the condition. int energy = 0; do { std::cout << "The player gets one turn (energy " << energy << ")\n"; } while (energy > 0); // break leaves the loop; continue jumps to the next round. int n = 0; while (true) { n++; if (n % 3 == 0) continue; // skip multiples of 3 if (n > 10) break; std::cout << n << ' '; } std::cout << '\n'; return 0;}Salida · c++ -std=c++17 main.cpp -o main && ./main
Goal reached in 5 months: 600 euros 5... 4... 3... 2... 1... Lift off! The player gets one turn (energy 0) 1 2 4 5 7 8 10
Para recordar
whilecomprueba la condición antes de cada vuelta.do-whilela comprueba después: se ejecuta al menos una vez.- Dentro del bucle algo debe cambiar la condición.
breaksale del bucle;continuepasa a la vuelta siguiente.
Ejercicio
Una planta mide 5 cm y crece un 20 % cada semana. Con un while, calcule cuántas semanas tarda en superar los 30 cm y escriba su altura cada semana.