2016-05-26 4 views
2

なぜこれはLUAでは動作しませんか?ルアの無限ループfor

for i = 1, 100, -1 do 
    print('Infinite') 
end 

上記のループは何も印刷しません。私がC/C++のような従来の言語から知っていることから、上記は無限ループでなければなりません。 C++

for (int i = 1; i <= 100; i--) 
    cout << "Infinite"; 

同等の私は、LUAでforループがどのように動作するかを正確に知りたいです。上記のC++と同じではありませんか?

編集:私には分かりませんHow to make an infinite loop in lua。私はここでループのforループがどのように機能するのかともっと心配していますか?

+0

可能性のある重複した[Luaのコードで無限ループを作るには?](http://stackoverflow.com/questions/4180010/how-to-make-an-infinite-loop-in-lua-コード) –

+4

C++のhttps://www.lua.org/manual/5.3/manual.html#3.3.5 – lhf

+0

のセマンティクスを参照してください。無限ループではありません。それはしばらくする必要があります。 – moteus

答えて

0

forが明示的に定義されていて、ステップが負の場合、現在の値がlimitよりも小さいかどうかがチェックされます。ステップ-1が負で現在の値1が最初から制限100よりも低いので、このforはループを実行しません。

0

LUAでforループAは、以下の構文は次のとおりです。

for init,max/min value, increment 
do 
    statement(s) 
end 

ので、以下のコードは、1から10に印刷されます:

for i=10,1,-1 
do 
    print(i) 
end 

あなたが使用する必要がありますLUAで無限ループを生成するには

while(true) 
do 
    print("This loop will run forever.") 
end 

より訪問http://www.tutorialspoint.com/lua/lua_loops.htm

用:whileループ
1

前述のように、forループにはC/C++と同じ3つの関数があります。

for i = <start>, <finish>, <increment> do 

しかし、LUAは、増分は関数が終了すると、完全にこのループを無視することができないことを検出します。無演算子で、引数として変数を入れて

LUAで
while true do 

は、値が存在する場合は/真でチェックします。
はあなたの簡単な使用、無限ループを作成します。それがfalse/nilの場合、それは実行されません。この場合、ループが永久になるように定数であるため、trueは常に真です。

while true do 
    print('Infinite Loop') 
end