Bienvenidos sean a este post, hoy hablaremos sobre una de las estructuras de control mas utilizadas en todo los lenguajes de programacion pasados, presentes y futuros como es el condicional if, este condicional se usa para evaluar un valor o una condicion y en base a ella permitir (en caso de ser verdadero o true) la ejecucion de una instruccion o un bloque de instrucciones u omitirla (en caso de ser falso o false), esto nos permite que el programa ejecute o no determinadas acciones en base a la condicion por lo cual podemos decir que dotaremos al programa de cierta “inteligencia” debido a que podra discernir entre varias posibilidades y no simplemente seguir las instrucciones al pie de la letra, otro de los elementos fundamentales de if es else, este nos permite tener una opcion distinta a la condicion, por lo general se lee como “de lo contrario” lo cual significa que en caso de no cumplirse la condicion (porque es falsa) ejecutara siempre el contenido del bloque else, pasemos a ver algunas sintaxis de este condicional:

Anuncios
if condicion then instruccion end

if condicion then
    ... instrucciones ...
end

if condicion then instruccion else otraInstruccion end

if condicion then
    ... instrucciones ...
else
    ... Otras instrucciones ...
end

Como pueden ver lo ideal, si solamente es una instruccion, es utilizarlo por medio de una sola linea, en caso de ser dos o mas se recomienda usar el bloque como se ve en el segundo ejemplo, la estructura basica es siempre la misma primero va el if luego la condicion seguido de un then (inicia el bloque) la o las instrucciones, finalizado por un end (simboliza el final del bloque), en el medio puede estar o no else, debido a que es opcional, para agregar mas instrucciones como explicamos antes, veamos el siguiente ejemplo:

if.lua

x = tonumber(io.read())
if x < 10 then
        print("El valor ingresado es menor a 10")
else
        print("EL valor ingresado es mayor a 10")
end

En este caso primero crearemos una variable llamada x a la cual le daremos la posibilidad de ingresar un valor por medio de io.read y a la funcion tonumber la convertiremos de cadena a numero, nuestro siguiente condicional chequeara si x es menor a 10 y nos mostrara un mensaje y en caso contrario (else) nos mostrara otro, probemos el programa para ver su salida:

tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3 if.lua
9
El valor ingresado es menor a 10
tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3 if.lua
10
EL valor ingresado es mayor a 10
tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3 if.lua
100
EL valor ingresado es mayor a 10
tinchicus@dbn001dsk:~/lenguaje/lua$
Anuncios

En este caso ingresamos tres valores, el primero cumple perfecto la condicion porque es menor a 10, el segundo nos devolvio que es mayor a 10 y el tercero tambien nos devolvio que es mayor a 10 pero si observamos nos devolvio un estado que no es verdad porque cuando ingresamos el valor de 10, este no es mayor a 10 sino igual. Una posible solucion puede ser usar en lugar de menor (<) usar menor o igual (<=) pero tampoco nos devolveria un mensaje acorde al numero porque tampoco es menor a 10, para estos casos donde necesitamos una tercer condicion o una opcion mas de condicion se utiliza el elseif, su aplicacion es muy parecida a else pero con la diferencia que podremos anidarlos y usar varios de ellos para distintas condiciones a diferencia de else que se usa una sola vez, su sintaxis es:

if condicion then
    ... instrucciones ...
elseif condicion then
... instrucciones ...
elseif condicion then
... instrucciones ...
elseif ... los necesarios
else
... instrucciones ...
end 

Tomemos el caso anterior donde nosotros queremos que se nos muestre cuando el valor ingresado sea igual a 10 en lugar de cualquiera de las dos condiciones que no son verdad, para ello tomemos el codigo y hagamos la siguiente modificacion:

x = tonumber(io.read())
if x < 10 then
        print("El valor ingresado es menor a 10")
elseif x == 10 then
        print("El valor ingresado es igual a 10")
else
        print("EL valor ingresado es mayor a 10")
end
Anuncios

En este caso solamente agregamos un elseif que se encarga de chequear si x vale 10 y en caso de ser verdadero nos muestra el mensaje pertinente, el resto funciona de la misma forma, obviamente si nosotros quisieramos agregar mas condiciones especificas simplemente agregamos a los elseif que necesitemos antes del else, recuerden que el else debe ser la ultima opcion de salida cuando no se cumple ninguna condicion anterior y en general es usado para mostrar una notificacion de error o similares, si probamos el programa podemos obtener una salida semejante a esta:

tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3 if.lua
10
El valor ingresado es igual a 10
tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3 if.lua
20
EL valor ingresado es mayor a 10
tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3 if.lua
1
El valor ingresado es menor a 10
tinchicus@dbn001dsk:~/lenguaje/lua$

Como pueden ver no importa en el orden que lo hayan ingresado el programa nos devolvera el mensaje correcto permitiendo un mejor refinamiento de nuestras condiciones pero un tema a tener en cuenta eviten utilizar muchos condicionales y elseif porque en un punto se nos puede transformar el codigo en algo ilegible, poco practico para la depuracion y sobre todo generar errores logicos que escapen al programa trayendo otros dolores de cabeza.

Anuncios

En resumen, hoy hemos el condicional if, su sintaxis basica, como trabaja, los modificadores que nos permiten una mejor opcion, y algunas aclaraciones sobre su uso y no uso, 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