Lua goto-Anweisung
Die goto-Anweisung in der Sprache Lua ermöglicht es, den Kontrollfluss bedingungslos auf eine markierte Anweisung zu übertragen.
Syntax
Das Syntaxformat lautet wie folgt:
goto Label
Das Format eines Labels ist:
:: Label ::
Das folgende Beispiel verwendet goto in einer bedingten Anweisung:
Beispiel 1
local a = 1
::label:: print("--- goto label ---")
a = a+1
if a < 3 then
goto label -- springe zum Label label, wenn a kleiner als 3 ist
end
::label:: print("--- goto label ---")
a = a+1
if a < 3 then
goto label -- springe zum Label label, wenn a kleiner als 3 ist
end
Das Ausgabeergebnis ist:
--- goto label --- --- goto label ---
Wie aus dem Ausgabeergebnis ersichtlich ist, erfolgte eine zusätzliche Ausgabe.--- goto label ---。
Das folgende Beispiel zeigt, dass mehrere Anweisungen in einem Label festgelegt werden können:Beispiel 2
i = 0
::s1:: do
print(i)
i = i+1
end
if i>3 then
os.exit() --i ist größer als3beenden, wenn
end
goto s1
::s1:: do
print(i)
i = i+1
end
if i>3 then
os.exit() --i ist größer als3beenden, wenn
end
goto s1
Das Ausgabeergebnis ist:
0 1 2 3
Mit goto können wir die Funktionalität von continue implementieren:
Beispiel 3
for i=1, 3 do
if i <= 2 then
print(i, "yes continue")
goto continue
end
print(i, " no continue")
::continue::
print([[i'm end]])
end
if i <= 2 then
print(i, "yes continue")
goto continue
end
print(i, " no continue")
::continue::
print([[i'm end]])
end
Das Ausgabeergebnis ist:
1 yes continue i'm end 2 yes continue i'm end 3 no continue i'm endAndere Erweiterungen
Lua-Schleifen