Bucles: for, while y do-while
Los bucles ejecutan el mismo bloque varias veces. for sirve para un número de pasos conocido, while repite hasta que una condición falla y do-while siempre ejecuta su cuerpo al menos una vez.
¿Qué es Bucles: for, while y do-while?
Los bucles ejecutan el mismo bloque varias veces. for sirve para un número de pasos conocido, while repite hasta que una condición falla y do-while siempre ejecuta su cuerpo al menos una vez.
Repite trabajo con bucles for, while y do-while, además de break y continue.
Puntos importantes
- Activa los warnings del compilador y corrígelos.
- Conoce el tipo y el lifetime de cada valor.
- Valida las entradas y los límites de arrays.
Mira cómo funciona
Pulsa Paso para ejecutar el bucle paso a paso. Observa cómo se comprueba la condición, se ejecuta el cuerpo y la tabla de seguimiento crece fila a fila.
Ejemplos de código C y C++
#include <stdio.h>
int main(void) {
/* for: start; condition; step */
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
printf("\n");
/* while: repeat as long as the condition holds */
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
printf("halved %d times\n", steps);
/* do-while: the body runs at least once */
int tries = 0;
do {
tries++;
} while (tries < 3);
printf("tries = %d\n", tries);
/* break leaves the loop, continue skips to the next round */
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
if (i > 7) break;
printf("%d ", i);
}
printf("\n");
return 0;
}
1 2 3 4 5
halved 4 times
tries = 3
1 3 5 7
#include <iostream>
#include <vector>
int main() {
// for: start; condition; step
for (int i = 1; i <= 5; i++) {
std::cout << i << ' ';
}
std::cout << '\n';
// while: repeat as long as the condition holds
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
std::cout << "halved " << steps << " times\n";
// do-while: the body runs at least once
int tries = 0;
do {
tries++;
} while (tries < 3);
std::cout << "tries = " << tries << '\n';
// range-based for visits every element of a container
std::vector<int> values{1, 3, 5, 7};
int sum = 0;
for (int value : values) {
sum += value;
}
std::cout << "sum = " << sum << '\n';
}
1 2 3 4 5
halved 4 times
tries = 3
sum = 16
Comparación entre C y C++
La cabecera del for contiene el inicio, la condición y el paso. break sale antes de un bucle y continue salta a la siguiente vuelta. C++ añade el for basado en rangos, que recorre cada elemento de un contenedor sin índice.
C expone APIs procedurales pequeñas y detalles de representación.
C++ conserva el modelo de bajo nivel y añade tipos más seguros.
Ejercicios prácticos
Ejecuta ambas versiones y modifícalas para observar sus garantías.
- Añade entradas inválidas y límites.
- Compila con -Wall -Wextra -Wpedantic.
- Separa declaraciones e implementación.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
- Sum of Odd Numbers Add every odd number up to a limit. Fácil
- Cuenta regresiva hasta el despegue Cuenta regresiva desde un número y termina con ¡Despegue! Fácil
- Multiplication Table Row List the first multiples of a number. Fácil