Bienvenidos sean a este post, hoy continuaremos con dos estructuras de control como son while y repeat, a la primera ya hemos visto algunos ejemplos en posts anteriores pero del segundo hablaremos por primera vez hoy, en el caso de while se traduce como “mientras” y cuando lo usamos en general se usa el termino de hacer “mientras” la condicion se cumpla, se saldra del while siempre y cuando la condicion no se cumpla mas, mas adelante veremos otra forma, la sintaxis de while es:

Anuncios
while condcion do
    ... instrucciones ...
end

Para entender el concepto vamos a tomar el ejemplo del post anterior y vamos a hacer una serie de modificaciones:

while.lua

while x ~="q" do
        x = io.read()
        if (x~="q") then
                if tonumber(x)<10 then
                        print("El numero es menor a 10")
                elseif tonumber(x)==10 then
                        print("El numero es igual a 10")
                else
                        print("El numero es mayor a 10")
                end
        end
end

En este caso crearemos primero un bucle gigante donde la condicion sera que lo haga mientras x sea distinto de la letra q, la primera linea sera la encargada de recibir el valor y almacenarlo en x, nuestro primer condicional verifica si x es distinto de q, si se cumple la condicion ejecuta su bloque, en caso contrario omite el bloque y a su vez sale del while porque es la condicion sin equa non para salir, en el bloque del if chequearemos lo visto en el post anterior, pero para esta ocasion usaremos a tonumber para transformar el valor ingresado en numero y poder compararlo, al igual que en el post anterior tenemos la primera condicion donde chequea si es menor a 10 y muestra un mensaje, luego un elseif donde verifica si es igual a 10 con otro mensaje y el ultimo else donde muestra el mensaje final, si lo probamos al programa veremos una salida semejante a esta

Anuncios

Como pueden ver en este caso quedaremos en el bucle siempre y cuando no ingresemos la letra q, mientras ingresemos valores este sera verificado por el resto de los condicionales, pasemos a nuestra siguiente funcion que es repeat.

Esta funcion es muy similar a while pero en este caso usaremos repeat-until donde repetiremos el ciclo hasta (until) que se cumpla la condicion, a diferencia del ejemplo anterior en lugar de ejecutar el bloque despues de la condicion este ejecutara primero el bloque y luego chequeara la condicion y en determinados programas necesarios mas esta conducta que la anterior, veamos su sintaxis:

repeat
... instrucciones ...
until condicion

Tomemos el caso anterior y adaptemos el mismo a repeat:

repeat.lua

repeat
        x=io.read()
        if x~="q" then
                if tonumber(x) < 10 then
                        print("El numero es menor a 10")
                elseif tonumber(x) == 10 then
                        print("El numero es igual a 10")
                else
                        print("EL numero es mayor a 10")
                end
        end
until x =="q"
print("Gracias por usar este programa")
Anuncios

Observen las pequeñas diferencias, primero tenemos el repeat solo sin condiciones, luego pedimos el ingreso de la informacion, despues tenemos el mismo condicional que en el caso anterior primero verifica si x es igual a q, en caso de ser verdadero omite el resto de los condicionales y el resto de las condiciones para mostrar los distintos mensajes, la linea fuera de estos bloques es el until donde tendremos la condicion que chequea si x es igual a q, en caso de ser falso vuelve al comienzo y vuelve a ejecutar el bloque en caso de ser verdadero sale del bloque, nos notifica y sale del programa, probemos el programa y obtendremos una salida semejante a esta

En este caso tenemos exactamente lo mismo que en el caso anterior pero la unica diferencia es la conducta ya que primero ejecuta el bloque y luego chequea la condicion pero en comportamiento es exactamente igual.

Anuncios

En resumen, hoy hemos visto dos funciones, while y repeat, las dos nos permitiran crear un bucle de instrucciones en base a una condicion, en el caso de while primero chequea la condicion y si se cumple la condicion ejecuta el bloque, en el caso de repeat hace al reves, primero ejecuta el bloque y luego chequea la condicion, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00