AprenderC
← Todas las lecciones

Repetir hasta lograrlo

A veces no sabes cuántas vueltas faltan, solo cuándo parar.

1Por qué

El for sirve cuando sabes cuántas vueltas quieres: del 1 al 5, del 1 al 100. Pero muchas veces no lo sabes de antemano.

¿Cuántas veces se puede partir un número por la mitad antes de llegar a 1? Con 8 son tres veces: 8, 4, 2, 1. Con otro número serían otras. No hay un número de vueltas que escribir — solo se sabe cuándo parar.

Para eso está while: repite mientras la pregunta siga siendo que sí, y para apenas deja de serlo. La pregunta se hace antes de cada vuelta, no después.

Y aquí está la trampa clásica, la que hace que un programa se quede colgado: si dentro del ciclo nunca cambias lo que la pregunta mira, la respuesta siempre va a ser la misma y las vueltas no terminan nunca. Si eso pasa, el taller te lo va a decir en vez de quedarse pensando para siempre.

2Míralo andar

Este programa funciona. Léelo, y después ejecútalo sin cambiar nada.

#include <stdio.h>
int main(void)
{
int n = 8;
int veces = 0;
while (n > 1)
{
n = n / 2;
veces = veces + 1;
}
printf("8 se parte %d veces\n", veces);
return 0;
}

3Ahora tú

Este programa cuenta las vueltas pero nunca para. Escribe la línea que hace que n se achique, para que diga: 32 se parte 5 veces

#include <stdio.h>
int main(void)
{
int n = 32;
int veces = 0;
while (n > 1)
{
veces = veces + 1;
}
printf("32 se parte %d veces\n", veces);
return 0;
}

↖︎ Tu línea va aquí. Tiene que cambiar n, o la pregunta de arriba nunca cambia de respuesta.

Ejecutar

Lo que dice tu programa

↖︎ Escribe tu parte y dale a Ejecutar

Qué pasó

Aquí te aviso si tu programa hace algo raro.

    4Qué guarda tu programa

    Lo que tu programa recuerda

    ↖︎ Ejecuta el programa para ver qué pasa por dentro