Respuestas modelo
Consulta aquí las respuestas correctas y explicaciones de las autoevaluaciones y los tests del manual. Ideal para repasar antes de un test o aclarar dudas.
2.04 · Repetitivas: `while` (precondición)
16 preguntas con respuesta en este tema.
🎯 Autoevaluación (3)
¿Cuál es la diferencia entre while y do-while?
- A. Son idénticos
- B. while evalúa la condición antes, do-while después ✓ CORRECTA
- C. do-while no usa condición
- D. while es más rápido
while: 0 o más ejecuciones (puede no ejecutarse). do-while: 1 o más ejecuciones (siempre se ejecuta al menos una vez).
Si `i=10`, ¿cuántas veces se ejecuta `while(i<5) { i++; }`?
- A. 0 ✓ CORRECTA
- B. 5
- C. 10
- D. infinito
La condición i<5 es false desde el inicio (10<5=false), así que el bloque nunca se ejecuta.
¿Qué es un bucle infinito?
- A. Un bucle que termina rápido
- B. Un bucle cuya condición nunca se vuelve falsa ✓ CORRECTA
- C. Un bug del compilador
- D. Un while con 0 iteraciones
Bucle infinito ocurre cuando la condición siempre es true. Ej: while(true) { ... }. Hay que asegurar que haya un break o cambio.
📝 Test · Sección A · Opción múltiple (10)
¿Qué hace while?
- A. Ejecuta una vez
- B. Repite mientras la condición sea verdadera ✓ CORRECTA
- C. Define función
- D. Termina
while: repite mientras la condición sea true.
Si la condición de while es false desde el inicio, ¿cuántas veces se ejecuta?
- A. 1
- B. 0 ✓ CORRECTA
- C. infinito
- D. depende
Si es false inicialmente, el bloque no se ejecuta nunca.
while(true) genera:
- A. Un error
- B. Bucle infinito (a menos que haya break) ✓ CORRECTA
- C. 1 iteración
- D. Compila pero no corre
while(true) con break interno: bucle controlado. Sin break: bucle infinito.
¿Cómo evitar un bucle infinito en while?
- A. No se puede
- B. Modificar la variable de control y/o usar break ✓ CORRECTA
- C. Cambiar el nombre
- D. Recompilar
while(i < 10) { i++; } asegura que la condición cambie.
while vs do-while: diferencia clave:
- A. Son iguales
- B. do-while ejecuta el bloque al menos una vez ✓ CORRECTA
- C. while es más rápido
- D. do-while no tiene condición
do-while garantiza al menos una ejecución porque verifica la condición al final.
¿Cuál es la sintaxis de while?
- A. while (cond) { } ✓ CORRECTA
- B. while { } cond
- C. while: cond { }
- D. do while (cond) { }
while (condición) { bloque }.
Si i=0, while(i<5) { i++; }, ¿cuántas iteraciones?
- A. 4
- B. 5 ✓ CORRECTA
- C. 6
- D. infinito
i=0,1,2,3,4. 5 iteraciones.
Un while dentro de otro while se llama:
- A. Doble bucle
- B. while anidado ✓ CORRECTA
- C. loop loop
- D. bucle doble
Anidado: while dentro de while. Común para recorrer matrices 2D.
break en while:
- A. Reinicia
- B. Sale del bucle inmediatamente ✓ CORRECTA
- C. Salta a la siguiente iteración
- D. Duerme
break termina el bucle while. continue salta a la siguiente iteración.
continue en while:
- A. Termina
- B. Salta a la siguiente iteración ✓ CORRECTA
- C. Duerme
- D. Recompila
continue: salta el resto del bloque y evalúa la condición de nuevo.
✍️ Test · Sección B · Preguntas abiertas (3)
Explica la diferencia entre while y for. ¿Cuándo es mejor cada uno?
While: cuando no sabes cuántas iteraciones (lectura hasta EOF, menú). For: cuando sabes el número de iteraciones (recorrer array, contar hasta N). For es más compacto para contadores.
¿Por qué es importante evitar bucles infinitos? Da un ejemplo real de un bug causado.
Bucle infinito: cuelga el programa, consume CPU/memoria hasta crash. Bug ejemplo: while (true) { /* falta condición de salida */ } en producción. Consecuencias: servidor caído, pérdida de datos, costo computacional.
Diseña un while que valide que el usuario ingrese un número entre 1 y 10.
int n; do { cout << "Ingrese 1-10: "; cin >> n; } while (n < 1 || n > 10); Nota: usar do-while garantiza al menos una lectura.
📝 ¿Listo para evaluarte?
Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.