web-dev-qa-db-ja.com

Lua-同じ変数に2つの条件があるステートメントの場合

Luaプログラミング言語のifステートメントで変数の下限値と上限値を設定するにはどうすればよいですか?以下の疑似コードのようなものが必要です。

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

さまざまな形式を試しましたが、アプリケーションがクラッシュし続けます。

更新:

Luaの構文について同様の疑いがある人には、ドキュメント here を確認して手元に置いておくことをお勧めします。学習中に役立ちます。

12
Mateus

数値であることが確実であり、それが文字列である理由がない場合は、文字列を数値に変換する必要があります。

範囲を比較する方法は次のとおりです。

myVariable = tonumber(myVariable)

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

andに注目してください。ほとんどのプログラミング言語はx < y < zの形式を自動的にx < y AND y < zに拡張しないため、論理andを明示的に使用する必要があります。これは、一方が他方の前に評価されるため、左から右の順序でx < y < zからtrue < zになり、エラーになりますが、明示的な方法では、 x < y AND y < zからtrue AND y < zからtrue AND truetrueに。

21
voithos