Diagrama de flujo con While: Ejemplos y Ejercicios Prácticos

Un diagrama de flujo con while representa un bucle que comprueba una condición antes de ejecutar sus instrucciones. Si la condición es verdadera, ejecuta el cuerpo y vuelve a comprobarla; si es falsa, sale del bucle. El cuerpo puede ejecutarse cero veces.
Vamos a ver dos ejemplos resueltos: mostrar los números del 1 al 5 y sumar números hasta introducir un valor negativo. Puedes seguirlos en papel sin instalar ningún programa.
Cómo representar un while en un diagrama de flujo
- Inicio e inicialización: asigna los valores que necesita la condición, como
i ← 1. - Condición en un rombo: formula una pregunta con salida «Sí» y «No».
- Rama Sí: ejecuta las instrucciones del cuerpo del bucle.
- Actualización: cambia el contador o lee un dato nuevo cuando el algoritmo lo necesite.
- Retorno: dibuja una flecha desde el final del cuerpo hasta el rombo.
- Rama No: continúa con las instrucciones posteriores o con el fin.
Usa un óvalo para inicio y fin, un rectángulo para asignaciones y operaciones, un paralelogramo para entrada o salida de datos y un rombo para la condición.
Ejemplo 1: mostrar los números del 1 al 5
El contador empieza en 1. Mientras sea menor o igual que 5, mostramos su valor y le sumamos 1.

Pseudocódigo
i ← 1
Mientras i <= 5 Hacer
Escribir i
i ← i + 1
FinMientras
El mismo ejemplo en Python
i = 1
while i <= 5:
print(i)
i += 1
Salida: 1, 2, 3, 4 y 5, cada uno en una línea. Python delimita el cuerpo con sangría; las llaves no forman parte de esta sintaxis.
Tabla de seguimiento
| i al comprobar | ¿i ≤ 5? | Acción | i después |
|---|---|---|---|
| 1 | Sí | Mostrar 1 | 2 |
| 2 | Sí | Mostrar 2 | 3 |
| 3 | Sí | Mostrar 3 | 4 |
| 4 | Sí | Mostrar 4 | 5 |
| 5 | Sí | Mostrar 5 | 6 |
| 6 | No | Salir | 6 |
Ejemplo 2: sumar números hasta introducir uno negativo
Queremos sumar los valores introducidos y detenernos al recibir un negativo. Ese negativo sirve como señal de parada y no se suma. Primero hay que leer un número para poder comprobar la condición.
El recorrido del diagrama es: Inicio → suma = 0 → leer número → ¿número ≥ 0? La rama «Sí» conduce a sumar el número y leer el siguiente, y después vuelve al rombo. La rama «No» conduce a mostrar la suma y terminar.
suma ← 0
Leer numero
Mientras numero >= 0 Hacer
suma ← suma + numero
Leer numero
FinMientras
Escribir suma
En Python, para entradas numéricas enteras válidas:
suma = 0
numero = int(input("Introduce un entero (negativo para terminar): "))
while numero >= 0:
suma += numero
numero = int(input("Introduce otro entero: "))
print(suma)
Con las entradas 4, 7, 3, -1, el resultado es 14. Si el primer dato es -1, la condición es falsa desde el principio y el resultado es 0. El ejemplo presupone que se introducen enteros: un texto como «hola» requiere validar la entrada antes de convertirla.
Errores frecuentes al dibujar un while
- No inicializar la variable: la condición necesita un valor definido antes de su primera comprobación.
- Olvidar actualizar el contador o leer el siguiente dato: puede impedir que la condición cambie y provocar un bucle infinito.
- Volver a la inicialización: la flecha del cuerpo regresa a la condición. Si vuelve a
i ← 1, reinicia el contador en cada vuelta. - Confundir < con ≤: con
i < 5el primer ejemplo solo mostraría del 1 al 4. - Sumar la señal de parada: en el segundo ejemplo, el negativo se comprueba antes de la suma.
Preguntas frecuentes
¿Puede un while ejecutarse cero veces?
Sí. Comprueba la condición antes del cuerpo. Si empieza siendo falsa, pasa directamente a la salida.
¿Qué diferencia hay entre while y do-while?
While comprueba antes de ejecutar el cuerpo. Do-while lo comprueba después y ejecuta el cuerpo al menos una vez. Python no tiene una instrucción do-while propia.
¿Cuándo conviene usar for?
Para recorrer una secuencia o un rango conocido, un for suele resultar más directo. Consulta el ciclo for en un diagrama de flujo y compara su recorrido con estos ejemplos.
¿Cómo compruebo que el diagrama está bien?
Recorre sus flechas a mano y anota los valores. Prueba una entrada normal, otra que no entre al bucle y el valor límite de la condición. Todas las ramas deben llevar a una instrucción o a la salida.

Deja una respuesta