2012-01-24 44 views
8

¿Cómo puedo establecer un valor límite inferior y superior para una variable en una instrucción if en el lenguaje de programación lua? Necesito algo así como el pseudocódigo a continuación.Lua - ¿declaración if con dos condiciones en la misma variable?

if ("100000" >= my_variable <= "80000") then 
    do stuff... 
end 

He intentado diferentes formatos pero mi aplicación sigue fallando.

Actualización:

Para cualquier persona con el mismo tipo de dudas acerca de la sintaxis de lua, me gustaría recomendar la comprobación de la documentación here y mantener a la mano. Te será útil mientras aprendes.

+0

En cuanto a sus problemas, creo que se cierra enseguida. Para solucionar esto, desea abrir el intérprete de Lua e ingresar 'dofile (" su_archivo.lua ")'. Esto lo ejecutará en modo interactivo y evitará que se cierre después de que se muestre el error. (También podría agregar "pausa" al final de su script de compilación) – Deco

Respuesta

18

Debe convertir su cadena en un número, si está seguro de que debe ser un número, y si no hay ninguna razón para que sea una cadena.

Así es como hacer una comparación para una gama:

myVariable = tonumber(myVariable) 

if (100000 >= myVariable and myVariable >= 80000) then 
    display.remove(myImage) 
end 

Aviso del and. La mayoría de los lenguajes de programación no expanden automáticamente el formulario x < y < z a x < y AND y < z, por lo que debe usar el and lógico explícitamente. Esto se debe a que un lado se evalúa antes que el otro, por lo que de izquierda a derecha termina yendo de x < y < z a true < z, que es un error, mientras que en el método explícito va de x < y AND y < z a true AND y < z a true AND true, a true .

+0

Lo siento, olvidé mencionar que la variable myvalue es un texto, así que para obtener los números exactos almacenados en el texto debo usar las comillas. ACTUALIZADO VALORES. – Mateus

+1

@MateusNunes: Probablemente deberías convertir tu texto (conocido como "cadena") a un número. Ver mi edición – voithos

+0

¡Gracias 'y' funcionó para mí! – Mateus

Cuestiones relacionadas