/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

como funciona el for

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
rojid



Registrado: 22 Oct 2007
Mensajes: 14

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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 Wink
_________________
Diario de un pre-informático
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com