| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
rojid
Registrado: 22 Oct 2007 Mensajes: 14
| Publicado: 29/10/2007 1:34 am | | | Título: como funciona el for |
| se que for=(inicializacion;condicion;incremento) y lugo sentencia, pero exantamente que hace? ejecuta la sentencia tantas veces hasta que sea falsa la condicion? pero cuando hay mas de un ""for"" seguidos que pasa luego?
si es un programa sencillo si lo entiendo, por ej: ...... for(i=0;i<10;i++) {printf("hola"); }
se que este escribira ""hola"" 10 veces, pero si pusiera otro for seguido del primero que pasaria con ""hola""
he leido un manual donde explica el funcionamiento de for, si hay solo uno lo entiendo, pero cuando ponen mas ya me pierdo. gracias! |
| | Volver arriba | |  | GrayFox
Registrado: 28 Ene 2007 Mensajes: 46
| Publicado: 29/10/2007 11:02 am | | | Título: |
| Cuando colocas dos for, uno dentro de otro, la sentencia se ejecutara tantas veces como el producto de la cantidad de ciclos de cada for. Un ejemplo practico:
| Código: |
for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { printf("*"); } printf("\n"); }
|
En general cuando colocas un for dentro de otro estas agregando una dimension. j tomara los valores de 0 a 9 para cada valor de 0 a 9 de i. El resultado es que estamos recorriendo una cuadricula de 10x10 casilleros. Osea primero se ejecutara el ciclo de la i. Se entrara en el ciclo j y se mostrara el "*" 10 veces. Al salir de ese ciclo se introduce un fin de linea. Ahora esta operacion se repite diez veces por lo tanto estamos agregando 10 lineas de 10 "*". Si no incluimos el printf("\n") entonces tendriamos 100 "*" en linea.
Esto es lo basico, por ejemplo si utilizas como condicion del ciclo j el valor de i seguramente obtendras algo como un triangulo.
| Código: | for(int i=0;i<10;i++) { for(int j=0;j<i;j++) { printf("*"); } printf("\n"); }
|
Bueno espero que te sirva. Salu2 GrayFox |
| | Volver arriba | |  | jonan_1988
Registrado: 12 Abr 2005 Mensajes: 48
| Publicado: 30/10/2007 7:56 am | | | Título: |
| Igual lo ves más claro separando los fors...
Tienes:
| Código: | for (int i=0; i<10; i++) { printf("%i, ", i); } |
Ahora metemos eso dentro de otro for:
| Código: | for (int j=0; j<10; j++) { for (int i=0; i<10; i++) { printf("%i, ", i); } print("\n"); } |
Si no sabes lo que hace, puedes meter el primer for (el que ahora esta dentro del otro) en una función o sustituirlo por su resultado.
Su resultado sería:
| Cita: | | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, |
Pues los dos fors anidados serían equivalentes a:
| Código: | for (int j=0; j<10; j++) { printf("0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "); print("\n"); } |
Espero que te haya servido  _________________ Diario de un pre-informático |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |