web-dev-qa-db-fra.com

Lua - si instruction avec deux conditions sur la même variable?

Comment puis-je définir une valeur limite inférieure et supérieure pour une variable dans une instruction if en langage de programmation LUA? J'ai besoin de quelque chose comme le pseudocode ci-dessous.

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

J'ai essayé différents formats mais mon application ne cesse de planter.

Mise à jour:

À tous ceux qui ont le même genre de doutes sur la syntaxe de lua, je recommanderais de vérifier la documentation ici et de la garder à portée de main. Ce sera utile tout en apprenant.

12
Mateus

Vous devez convertir votre chaîne en un nombre, si vous savez avec certitude que ce doit être un nombre et s'il n'y a aucune raison pour que ce soit une chaîne.

Voici comment faire une comparaison pour une plage:

myVariable = tonumber(myVariable)

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

Notez le and. La plupart des langages de programmation ne développent pas le formulaire x < y < z à x < y AND y < z automatiquement, vous devez donc utiliser explicitement la and logique. C'est parce qu'un côté est évalué avant l'autre côté, donc dans l'ordre de gauche à droite, il finit par aller de x < y < z à true < z qui est une erreur, alors que dans la méthode explicite, cela va de x < y AND y < z à true AND y < z à true AND true, à true.

21
voithos