Estás en:   Inicio > ¿Qué es VDS? > Tutorial > Lección 3 (Condiciones y Bucles)

Acceso rápido

======================
======================
======================

 

    RSS Suscribir al boletín de noticias y novedades

 

 

 

 

 

 

   
 

TUTORIAL - LECCIÓN 3

Sigamos usando nuestro programa. Como vimos se preguntó 3 veces por el nombre de otros tantos usuarios. Imáginate que son 45 usuarios y tienes que indicar una línea de código por cada uno, en total 45 líneas de código. Absurdo.

Para esto se usan bucles (repeat-until; while-wend; for-next) de ejecución que dependen de que se cumpla o no una condición para repetir nuevamente un trozo de código. Probemos lo siguiente:

list create,1
%%numero_de_veces
= 10
repeat
    list add,1,@input(¿Cómo te llamas usuario?)
   %%numero_de_veces
= @pred(%%numero_de_veces)
until @zero(%%numero_de_veces)
info
Hola Mundo. Os hablan:@cr()@text(1)

En esta versión creamos una variable llamada %%numero_de_veces a la que le damos el valor 10 (o el que queramos). Esta variable será nuestro contador para preguntar por el nombre de 10 usuarios (o el nº de usuarios que queramos).

Hay un comando repeat asociado a until. Todo el código que haya dentro se ejecutará hasta (until) que una condición se cumpla. Como puedes apreciar, el código que va dentro de repeat-until se presenta con una sangría mayor (mayor margen derecho), de manera estructurada.

Cada vez que se pregunta por el nombre de un usuario el valor de %%numero_de_veces se decrementa en uno, es decir el predecesor (lo que hace la función @pred). Ésta es una característica propia de VDS, ya que en otros lenguajes basta con indicarlo así:

%%numero_de_veces = %%numero_de_veces - 1

En cada pasada por until se comprueba si %%numero_de_veces ha llegado al valor cero (la función @zero() da como resultado "positivo" si su argumento es cero). Es decir que %%numero_de_veces valdrá 0 cuando se hayan preguntado 10 veces el nombre de cada usuario.

Podemos cambiar la función @zero() por esta otra que haría lo mismo:

@equal(%%numero_de_veces,0

donde se compara la variable %%numero_de_veces con el valor 0 dando "correcto" si es cierto.

También podemos hacerlo así:

list create,1
%%numero_de_veces
= 10

while @greater
(
%%numero_de_veces,0)
    list add,1,@input(¿Cómo te llamas usuario?)
   %%numero_de_veces
= @pred(%%numero_de_veces)
wend

Ahora la condición se establece antes del bloque de código a repetir. Mientras que el valor de la variable %%numero_de_veces sea mayor (@greater) que 0 se ejecuta el bloque de código. Cuando se llegue al valor 0 se salta el bloque de código.

La última condición que trataremos es el comando if.

Veamos un ejemplo:

if @ask(¿Quieres ejecutar el programa?)
    list create,1
   %%numero_de_veces
= 10

  
while @greater(%%numero_de_veces,0)
        list add,1,@input(¿Cómo te llamas usuario?)
      %%numero_de_veces
= @pred(%%numero_de_veces)
   wend
    info Hola Mundo. Os hablan:@cr()@text(1)
end

Sólo si la respuesta a la pregunta (función @ask) ¿Quieres ejecutar el programa? es sí se ejecutará el programa. En caso contrario se salta todo el bloque de código que se encuentra entre if - end.

Notar dos cosas, que el bloque de código suele ponerse con sangría, como vimos anteriormente; aunque no es necesario facilita la comprensión del programa. Segundo en lo que fijarse es que se pueden anidar todas los bucles anteriormente vistos.

Investiga y aprende analizando los scripts de otros usuarios.

 

Lección 3 (Condiciones)


 
Copyright © 2004-2008 uVeDeSe

 
1 1