Sesión 17 · Estructuras repetitivas
Hacer–Mientras y validación de datos
En esta sesión trabajarás un ciclo con evaluación posterior: primero ejecuta el bloque y después decide si debe repetirse. Esta característica lo vuelve especialmente útil cuando una entrada debe solicitarse al menos una vez, como ocurre en numerosos procesos de validación de datos.
Ejecutar primero, comprobar después
Reconocer que el bloque ocurre al menos una vez.
Comprobar la condición al finalizar cada iteración.
Solicitar nuevamente un dato mientras sea inválido.
Distinguir cuándo conviene Mientras y cuándo Hacer–Mientras.
Lo esencial de Mientras
Evaluación posterior y validación
1. Estructura general
En esta materia utilizaremos una representación conceptual como:
El bloque se ejecuta primero. Al terminar, se evalúa la condición: si es verdadera, el ciclo vuelve a comenzar; si es falsa, termina.
2. Diferencia fundamental con Mientras
Pregunta primero. Puede ejecutar el bloque 0 veces.
Ejecuta primero. El bloque ocurre como mínimo una vez.
3. Ejemplo mínimo
Aunque la condición resulta falsa al evaluarse, el bloque ya se ejecutó una vez. Se mostraría el valor 10.
4. Validación de datos
Validar significa comprobar que un dato cumple las reglas necesarias antes de utilizarlo. Si una calificación debe estar entre 0 y 10, podemos pedirla y repetir la solicitud únicamente mientras sea inválida.
5. La condición puede describir el error
En el ejemplo anterior repetimos mientras el dato sea inválido. Para una calificación válida de 0 a 10:
Cuando esa expresión se vuelve falsa, el dato ya está dentro del rango permitido.
6. Regla válida vs. condición de repetición
calificacion >= 0 Y calificacion <= 10
calificacion < 0 O calificacion > 10
Las dos expresiones describen el mismo rango desde perspectivas opuestas. Es importante no confundir la condición para aceptar con la condición para repetir.
7. Validación de opción de menú
El ciclo termina cuando la opción queda dentro del intervalo 1–3.
8. Validación de edad
9. Varias entradas inválidas
Si el usuario introduce -4, 150, 35 para edad, el bloque se ejecuta tres veces: las dos primeras mantienen verdadera la condición de repetición; 35 vuelve falsa la condición y permite salir.
10. Prueba de escritorio
| Iteración | Dato ingresado | ¿dato < 0 O dato > 10? | ¿Repite? |
|---|---|---|---|
| 1 | -2 | Verdadero | Sí |
| 2 | 15 | Verdadero | Sí |
| 3 | 8 | Falso | No |
11. Error frecuente: condición invertida
Si interpretamos Mientras como condición de repetición, este ciclo vuelve a pedir el dato precisamente cuando es válido. Para este diseño queremos repetir mientras sea inválido.
12. Error frecuente: condición imposible
Una misma edad no puede ser menor que 0 y mayor que 120 al mismo tiempo. Para describir “fuera del rango” necesitamos O.
13. ¿Cuándo conviene Mientras?
Cuando ya dispones de un valor antes de entrar al ciclo y existe la posibilidad real de que el bloque no deba ejecutarse. Ejemplo: procesar elementos mientras todavía queden pendientes.
14. ¿Cuándo conviene Hacer–Mientras?
Cuando la acción debe ocurrir al menos una vez antes de poder evaluar si hace falta repetirla. La captura y validación de datos es un ejemplo natural.
15. Sintaxis en lenguajes reales
La idea aparece con sintaxis distintas. En Java, por ejemplo, existe do { ... } while (condición);. En pseudocódigo puede representarse con palabras diferentes según la herramienta. Lo importante aquí es identificar la evaluación posterior.
Hacer–Mientras condición significa repetir mientras la condición siga siendo verdadera.¿Cuántas veces se ejecuta?
Simulador de evaluación posterior
Se simulará: Hacer → mostrar contador → actualizar contador → Mientras contador <= límite.
Solicitar hasta obtener un dato válido
Simulador · calificación de 0 a 10
Escribe varios intentos separados por comas. El simulador se detendrá en el primer dato válido.
Elige la condición de repetición
Completa el algoritmo
Mientras vs. Hacer–Mientras
| Característica | Mientras | Hacer–Mientras |
|---|---|---|
| Momento de evaluación | Antes del bloque | Después del bloque |
| Mínimo de ejecuciones | 0 | 1 |
| Útil para... | Procesar mientras una condición ya conocida se cumple | Capturar/validar cuando primero debe ocurrir una acción |
| Riesgo de ciclo infinito | Sí, si el estado no conduce a la salida | También, si la condición nunca se vuelve falsa |
¿Cuál elegirías?
Explica con tus palabras
Errores de validación
Repara la condición
Prueba de escritorio de validación
Intentos: 121, -1, 140, 40. Completa si el ciclo debe repetir después de cada captura.
| Intento | Edad | ¿Inválida? | ¿Repite? |
|---|---|---|---|
| 1 | 121 | ||
| 2 | -1 | ||
| 3 | 140 | ||
| 4 | 40 |
Algoritmo de validación + cuadro comparativo
A. Algoritmo de validación de datos
B. Cuadro comparativo: Mientras vs. Hacer–Mientras
Lista de verificación
Reporte de evidencia
Analiza la evidencia para generar el reporte.