sábado, 31 de marzo de 2012

Programando IV: ActionScript 3.0 (Sentencias de control – for)

Vamos ahora a la parte de las sentencias de control que se conoce como sentencias de repetición o bucles, y que consiste en un fragmento de código que se repite un número de veces en función de una condición.

Voy a ver si me explico mejor. Imaginemos que necesitamos poner en pantalla 200 arboles para un bosque donde se desarrolla la aventura de nuestro juego. ¿Necesitamos copiar 200 lineas de código iguales que los pongan? Pues no, ya que es mucho mas facil decirle al ordenador algo así como “mientras no haya 200 arboles, sigue ejecutando esto que yo te digo, para ponerlos en pantalla”.

La primera sentencia de repetición que vamos a ver en AS3 es for, cuya sintaxis general es la siguiente:

for (variable; condicion; incremento) {
     Sentencias que se van a repetir;
}


La variable se puede inicializar dentro del for o antes y la condición se lee como “esto ocurrira mientras esta condicion se cumpla”. Por último, el incremento se pone por que si no hay cambio en la variable que ejecuta la condición se producirá un bucle infinito y el programa se bloqueara. ¡Cuidado por tanto con los bucles infinitos!

Vamos a ver un programa sencillísimo de ejemplo con el for para irlo entendiendo mejor:

for (var i:int=0;i<=9;i++){ 
    trace("valor de i es "+i); 
}

La salida sería la siguiente:


Tenemos una variable i, que podemos declarar e inicializar en el for o antes del for, y que hemos puesto a 0 (var i:int=0) seguido de un punto y coma y un “mientras i sea menor o igual que 9. Por último el i++ nos indica que se incrementará la i en uno a cada paso por el bucle. (Para eso sirve el operador ++, es igual que i=i+1).

El programa hace la sentencia dentro del trace hasta que se cumple que i sea mayor que 9, y como la i también esta en el trace y va cambiando su valor, se van imprimiendo los distintos números.

Aunque el for recibe 3 parametros entre los punto y coma, el unico obligatorio es el de la condición, pero los punto y coma deben aparecer también. La declaración e inicialización de la variable pueden estar antes del for, como ya he dicho y el incremento, puede estar dentro del propio bucle. El programa entonces, quedaría de la siguiente forma:

var i:int=0;

for (;i<=9;){ 

    trace("valor de i es "+i); i++; 
}

Hay otros dos tipos de bucles que iremos viendo, pero que tienen un efecto bastante parecido, aunque digamos que el for se usa sobretodo para un tipo de bucle que sabemos seguro cuantas veces queremos que se repita.

Próximamente while y do-while, y muy muy pronto estaremos poniendo cosas en pantalla. ¡Yuhu! Sabiendo muy poquitas cosas ya se podría hacer un juego sencillo. Pronto empezaré a mostrar el camino para lograr uno. :P

No hay comentarios:

Publicar un comentario