Programación General > C/C++
Dos while juntos
(1/1)
player_:
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; }
Eternal Idol:
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"); return 0;}
player_:
Perfecto, esta vez lo entendí a la primera. Gracias de nuevo por la explicación!!!
Eternal Idol:
De nadas B)
Navegación
Ir a la versión completa