Lua for-Schleife

Lua 循环Lua-Schleifen

In der Programmiersprache Lua kann die for-Schleifenanweisung angegebene Anweisungen wiederholt ausführen, und die Anzahl der Wiederholungen kann in der for-Anweisung gesteuert werden.

Die for-Schleife in der Programmiersprache Lua hat zwei Hauptkategorien:

  • Numerische for-Schleife
  • Generische for-Schleife

Numerische for-Schleife

Das Syntaxformat der numerischen for-Schleife in der Programmiersprache Lua ist:

for var=exp1,exp2,exp3 do  
    <执行体>  
end  

var ändert sich von exp1 nach exp2, wobei var bei jeder Änderung um exp3 erhöht wird, und führt einmal"Schleifenkörper" aus.exp3 ist optional; wenn nicht angegeben, wird standardmäßig 1 verwendet.

Beispiel

Beispiel

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

Die drei Ausdrücke von for werden einmal vor Beginn der Schleife ausgewertet und danach nicht erneut ausgewertet. Zum Beispiel wird f(x) oben nur einmal vor Beginn der Schleife ausgeführt, und sein Ergebnis wird in den nachfolgenden Schleifen verwendet.

Die Überprüfung ist wie folgt:

Beispiel

#!/usr/local/bin/lua  
Funktion f(x)  
    print("function")  
    return x*2  
end  
for i=1,f(5) do print(i)  
end

Die Ausgabe des obigen Beispiels ist:

function
1
2
3
4
5
6
7
8
9
10

Es ist zu sehen, dass die Funktion f(x) nur einmal vor Beginn der Schleife ausgeführt wird.


Generische for-Schleife

Die generische for-Schleife durchläuft alle Werte über eine Iteratorfunktion, ähnlich der foreach-Anweisung in Java.

Das Syntaxformat der generischen for-Schleife in der Programmiersprache Lua ist:

--打印数组a的所有值  
a = {"one", "two", "three"}
for i, v in ipairs(a) do
    print(i, v)
end 

i ist der Array-Indexwert, und v ist der Array-Elementwert, der dem Index entspricht. ipairs ist eine von Lua bereitgestellte Iteratorfunktion, die zum Durchlaufen von Arrays verwendet wird.

Beispiel

Durchlaufe das Array days:

Beispiel

#!/usr/local/bin/lua  
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}  
for i,v in ipairs(days) do  print(v) end  

Die Ausgabe des obigen Beispiels ist:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

Lua 循环Lua-Schleifen

Weitere Erweiterungen