lunes, 26 de marzo de 2012

Sentencia de Control FOR

Buenas amigos, en anteriores temas vimos las Sentencias de Control WHILE y DO/WHILE. En este nuevo tema, veremos para mi gusto, la sentencia más importante, el FOR.



La sentencia de control FOR tiene el siguiente formato:

        • for(expresión1;expresión2;expresión3){
        • secuencia de instrucciones
        • ........................................
        • }
El funcionamiento de la sentencia FOR es el siguiente:
  • La primera vez que se ejecuta la sentencia FOR:
      • Se ejecuta la expresión1.
      • Se evalúa la expresión2 y se analiza el resultado de esta evaluación:
        • Si el resultado es verdadero, se ejecuta la secuencia de instrucciones
        • Si el resultado es falso, finaliza la ejecución de la sentencia FOR
  • La segunda y las sucesivas veces que se ejecuta la sentencia FOR:
      • Se ejecuta la expresión3.
      • Se evalúa la expresión2 y se analiza el resultado de esta evaluación:
        • Si el resultado es verdadero, se ejecuta la secuencia de instrucciones.
        • Si el resultado es falso, finaliza la ejecución de la sentencia FOR.
Bien, digamos que queremos mostrar por consola los 10 primeros números enteros por medio de un FOR:


Creamos un nuevo proyecto con una nueva clase, y dentro de la main picamos lo siguiente:
        • for(int i=0;  i<10;   i++){
        • System.out.println(i);
        • }
Creamos el FOR, y separadas por punto y coma ";" las expresiones del FOR:
  1. En la primera expresión creamos una variable de tipo entero (int) llamada "i" y le asignamos el valor 0.
  2. En la segunda expresión (Suele ser una expresión booleana), le indicamos que i es menor a 10.
  3. En la tercera expresión le indicamos a i que se autoincremente en 1 (i++). i++ es igual que decir i=i+1. Más adelante explicaré las diferentes maneras de autoincremento de una variable.
  4. En las instrucciones indicamos que se imprima por pantalla la variable i.
Como explicamos unos párrafos más atrás, cuando el FOR se ejecuta por primera vez ejecuta la primera expresión, en este caso, crea una variable llamada i con valor 0, y pasa a la segunda expresión, la cual crea una expresión booleana donde se compara el valor de i con el valor 10, si i es menor que 10, la expresión es verdadera, y pasaríamos a la secuencia de instrucciones, donde se imprimiría por consola el número 0, y no acabamos aquí, ya que la única manera de terminar el bucle FOR es que la segunda expresión sea falsa (esto no es del todo cierto, en temas posteriores abordaremos otra manera de acabar con un FOR), por lo tanto el bucle FOR vuelve a iniciarse, pero ya no es la primera vez que se ha ejecutado, es la segunda, por lo cual, en vez de ir a la primera expresión, va a la tercera, la cual suma al valor de i +1 (i++, que sería lo mismo que i=i+1), una vez sumado, se vuelve a la segunda expresión y compara el valor de i con el valor 10, pero i ya no vale 0, ahora vale 1, pero sigue siendo verdadero ya que 1 es menor que 10, por lo tanto se va a la instrucción e imprime de nuevo el valor i. Así lo hará sucesivamente hasta que la segunda expresión sea falsa, o lo que es lo mismo, hasta que la variable i valga 10, con lo que terminara la ejecución del FOR.

Espero que les haya sido de utilidad. Un  saludo


1 comentario:

  1. Hola, la variable " i " hay que declararla porque de da error al correr el programa?

    ResponderEliminar