traducir - traductor ingles
Traducir un ciclo while en bucle for (4)
El bucle for
dobla i
y luego lo incrementa. El ciclo while solo lo dobla.
Cambia el ciclo for
por esto:
for (i=1;i<=128;i*=2) {
printf("%d", i);
}
Tener un simple ciclo while e intentar llegar a un ciclo for
i=1
while(i<=128)
{ printf("%d",i);
i*=2;
}
Aquí está mi bucle for
for (i=1;i<=128;i++)
{
printf("%d",i);
i*=2;
}
¿Cómo es que no da el mismo resultado? El primero imprimiría 1248163264128
, el bucle de impresión 137153163127
?
for (i=1;i<=128;i*=2)
{
printf("%d",i);
}
En el ciclo while no incrementaste i
, pero en tu loop for
estás usando
for (i=1;i<=128;i++)
{
printf("%d",i);
i*=2;
}
Estás incrementando i
con uno y multiplicando i
por 2 en cada iteración de tu ciclo. Esta es la razón por la que obtienes un resultado extraño.
Pruebe el siguiente código para obtener el mismo resultado que while loop.
for (i = 1; i <= 128; i *= 2)
{
printf("%d",i);
}
Porque también estás incrementando i
en el for-loop. En tu while-loop original, nunca se incrementa.
Prueba esto:
for (i=1; i<=128; i*=2) // Remove i++, move the i*=2 here.
{
printf("%d",i);
}