Programación General => C/C++ => Mensaje iniciado por: player_ en Lunes 6 de Julio de 2009, 13:48
Título: Dos while juntos
Publicado por: player_ en Lunes 6 de Julio de 2009, 13:48
En el código anterior de dibujar un cuadrado con asteriscos, no se volvía al primer for hasta que j era mayor que columnas y se se hacían todos sus ciclos. Por qué en estos 2 while se vuelve al primer while si no se han cumplido los 10 ciclos de while (column <= 10)? A cada ciclo, sale de ese while, hace n y vuelve a entrar al primero, por qué no lo hace 10 veces seguidas y cuando 11<=10 y da falso sale de ahí, hace n y vuelve al primer while?
Y también quería preguntar, qué hace if (row % 2)? Al principio del todo row = 10, por lo tanto 10 % 2 = 0, entonces cómo es la condición? Si row % 2, qué más? Gracias.
Código: Text
#include <stdio.h>
#include <stdlib.h>
main()
{
int row = 10, column;
while (row >=1) {
column =1;
while (column <= 10){
if(row % 2)
printf("<");
else
printf(">");
++column;
}
--row;
printf("n");
}
system ("PAUSE");
return 0;
}
Título: Re: Dos while juntos
Publicado por: Eternal Idol en Lunes 6 de Julio de 2009, 14:59
En este caso tampoco se vuelve hasta que se escribe toda la columna, sino imprimiria el n de fin de linea, la condicion es si el modulo de 2 de row es verdadero (o sea es mayor a 0), es decir los pares imprimiran mayor (>) y los impares menor (<).
Depuralo o miralo asi sino:
Código: C++
#include <stdio.h>
#include <stdlib.h>
int main()
{
int row =10, column;
while(row >=1)
{
column =1;
while(column <=10)
{
if(row %2)
printf("<");
else
printf(">");
++column;
}
printf("ahora esta por terminar una nueva iteracion del primer while");
--row;
printf("n");
}
system("PAUSE");
return0;
}
Título: Re: Dos while juntos
Publicado por: player_ en Lunes 6 de Julio de 2009, 15:30
Perfecto, esta vez lo entendí a la primera. Gracias de nuevo por la explicación!!!
Título: Re: Dos while juntos
Publicado por: Eternal Idol en Lunes 6 de Julio de 2009, 15:45