2016-12-03 1 views
-2

Ich habe eine Schleife in Lua und wenn eine bestimmte Sache passiert, möchte ich, dass es die Schleife beginnt. Wenn ich jedoch zurückkehre, wird die Schleife beendet.Äquivalent der Rückkehr in lua?

wrong = false 
while true do 
    if wrong then 
     return 
    end 

    print 'Not wrong' 
end 
+3

Suchen Sie nach einem Stichwort „weiter“? Wenn ja, sollten Sie dies lesen: http://stackoverflow.com/questions/3524970/why-does-lua-have-no-continue-statement –

+1

'Return' macht genau das, was es tun soll. In den meisten Sprachen beendet 'return' den aktuellen Funktionsaufruf, nicht nur die aktuelle Schleife. Ich schlage vor, dass Sie die Frage neu schreiben, um zu beschreiben, was Sie tun möchten, anstatt, was Sie fälschlicherweise denken, 'return' sollte tun. –

Antwort

0

Return beendet eine Funktion und gibt einen Wert zurück. Ich glaube, Sie wollen break aus einer Schleife

+2

'break' startet die Schleife nicht, was das OP gefragt hat. –

2

Zuerst return nicht beendet Ihre Schleife, es beendet die gesamte Funktion/Skript. Sei dir dessen bewusst! Um eine Schleife zu beenden, verwenden Sie break. Sie suchen ein Äquivalent zu "weiter" in anderen Sprachen.

So etwas gibt es in Lua nicht. Sie könnten etwas zusammen mit goto Aussagen Geige, die in neueren Lua-Versionen verfügbar sind, aber in der Regel können Sie einfach Ihren Code neu schreiben:

while true do 
    if not wrong then 
    print("not wrong") 
    end 
end