Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Bucles While y Do-While en C++: Dominando la Repetición en Tu Código

Bucles While y Do-While en C++ – Dominando la Repetición en Tu Código

Esta guía explica los bucles while y do-while en C++ con ejemplos claros, diagramas de flujo y consejos de mejores prácticas.

Los bucles son una piedra angular de la programación eficiente: te permiten ejecutar un bloque de código repetidamente sin duplicar líneas. Ya sea iterando sobre un rango o esperando entrada del usuario, elegir el tipo de bucle correcto es crucial para código legible y mantenible.

En C++ hay tres constructos de bucle principales:

  1. Bucle for – ideal cuando el número de iteraciones se conoce de antemano.
  2. Bucle while – se ejecuta mientras una condición permanezca verdadera.
  3. Bucle do…while – garantiza al menos una ejecución antes de probar la condición.

Mientras que el bucle for se cubrió en un tutorial anterior, este artículo se centra en los bucles while y do…while, detallando sintaxis, flujo de ejecución, trampas comunes y casos de uso reales.


Bucle While en C++

La sintaxis de un bucle while es sencilla:

while (condición) { // cuerpo del bucle }

El bucle evalúa condición antes de cada iteración:

Para una visión más profunda de los operadores relacionales y lógicos de C++, consulta la guía Operadores Relacionales y Lógicos en C++.


Diagrama de Flujo de un Bucle While

Bucles While y Do-While en C++: Dominando la Repetición en Tu Código

Ejemplo 1: Mostrar Números del 1 al 5

// Programa en C++ para imprimir números del 1 al 5 #include <iostream> using namespace std; int main() { int i = 1; // bucle while del 1 al 5 while (i <= 5) { cout << i << " "; ++i; } return 0; }

Salida

1 2 3 4 5

A continuación se muestra un desglose paso a paso de la ejecución del programa:

IteraciónVariablei <= 5Acción
1ªi = 1true1 impreso, i se vuelve 2
2ªi = 2true2 impreso, i se vuelve 3
3ªi = 3true3 impreso, i se vuelve 4
4ªi = 4true4 impreso, i se vuelve 5
5ªi = 5true5 impreso, i se vuelve 6
6ªi = 6falseEl bucle termina

Ejemplo 2: Suma Solo de Números Positivos

// programa para hallar la suma de números positivos // si el usuario ingresa un número negativo, el bucle termina // el número negativo ingresado no se suma a la suma #include <iostream> using namespace std; int main() { int número; int suma = 0; // tomar entrada del usuario cout << "Ingresa un número: "; cin >> número; while (número >= 0) { // sumar todos los números positivos suma += número; // tomar entrada de nuevo si el número es positivo cout << "Ingresa un número: "; cin >> número; } // mostrar la suma cout << "\nLa suma es " << suma << endl; return 0; }

Salida

Ingresa un número: 6 Ingresa un número: 12 Ingresa un número: 7 Ingresa un número: 0 Ingresa un número: -2 La suma es 25

En este ejemplo, el programa sigue pidiendo números al usuario. Mientras el número ingresado sea no negativo, se suma a suma. Una entrada negativa señala el fin del bucle, y se muestra la suma final.


Bucle do…while en C++

El bucle do…while difiere de while al ejecutar su cuerpo al menos una vez antes de evaluar la condición. Esto es útil cuando el cuerpo del bucle debe ejecutarse antes de que se pueda verificar la condición de salida.

Su sintaxis es:

do { // cuerpo del bucle } while (condición);

Flujo de ejecución:


Diagrama de Flujo de un Bucle do…while

Bucles While y Do-While en C++: Dominando la Repetición en Tu Código

Ejemplo 3: Mostrar Números del 1 al 5

// Programa en C++ para imprimir números del 1 al 5 #include <iostream> using namespace std; int main() { int i = 1; // bucle do…while del 1 al 5 do { cout << i << " "; ++i; } while (i <= 5); return 0; }

Salida

1 2 3 4 5

Pasos de ejecución:

IteraciónVariablei <= 5Acción
Iniciali = 1No verificada aún1 impreso, i se vuelve 2
1ªi = 2true2 impreso, i se vuelve 3
2ªi = 3true3 impreso, i se vuelve 4
3ªi = 4true4 impreso, i se vuelve 5
4ªi = 5true5 impreso, i se vuelve 6
5ªi = 6falseEl bucle termina

Ejemplo 4: Suma Solo de Números Positivos

// programa para hallar la suma de números positivos // Si el usuario ingresa un número negativo, el bucle termina // el número negativo ingresado no se suma a la suma #include <iostream> using namespace std; int main() { int número = 0; int suma = 0; do { suma += número; // tomar entrada del usuario cout << "Ingresa un número: "; cin >> número; } while (número >= 0); // mostrar la suma cout << "\nLa suma es " << suma << endl; return 0; }

Salida 1

Ingresa un número: 6 Ingresa un número: 12 Ingresa un número: 7 Ingresa un número: 0 Ingresa un número: -2 La suma es 25

Salida 2

Ingresa un número: -6 La suma es 0.

Cuando la primera entrada es negativa, el bucle se ejecuta una vez y sale inmediatamente, dejando suma sin cambios.


Bucles Infinitos

Un bucle infinito ocurre cuando la condición del bucle nunca evalúa a false. Esto puede suceder intencionalmente (p. ej., un servidor que se ejecuta para siempre) o accidentalmente (errores lógicos).

// bucle while infinito while (true) { // cuerpo del bucle }

De manera similar, un bucle do…while puede ser infinito:

int cuenta = 1; do { // cuerpo del bucle } while (cuenta == 1);

Tales bucles consumen recursos hasta que el programa se termina o el sistema se queda sin memoria.


Bucles for vs while

El bucle for es más adecuado cuando el conteo de iteraciones se conoce de antemano:

// bucle iterado 5 veces for (int i = 1; i <= 5; ++i) { // cuerpo del bucle }

En contraste, los bucles while y do…while son ideales cuando el número de iteraciones depende de datos en tiempo de ejecución, como entrada del usuario o el resultado de una condición compleja.


Explora más ejemplos de bucles en C++:


Lenguaje C

  1. Dominando la lógica condicional en C#: If, If-Else, If-ElseIf y sentencias If anidadas
  2. Clases y Objetos en C++: Guía Práctica de Programación Orientada a Objetos
  3. Dominando la gestión de memoria en C++: uso experto de new y delete
  4. Herencia en C++: public, protected y private explicados
  5. Funciones y clases amigas en C++: dominando el control de acceso
  6. Bucle do‑while en C++: Sintaxis, ejemplos prácticos y bucles anidados
  7. Bucles While vs. Do-While: Comparación clara con ejemplos prácticos
  8. Guía Completa de Fecha y Hora en C++
  9. Dominando la Sobrecarga en C++: Funciones y Operadores Explicados
  10. Dominando Entrada/Salida de Archivos en C++: Lectura y Escritura con fstream
  11. Comprobador de Números Palíndromos en Java: Algoritmos con Bucles While y For