English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Instrução goto do Lua

Loop do Lua

A instrução goto no Lua permite que o fluxo de controle seja transferido para uma instrução marcada sem condições.

Sintaxe

O formato de sintaxe é como follows:

goto Rótulo

O formato do rótulo é:

:: Rótulo ::

O seguinte exemplo demonstra o uso de goto em uma instrução de condição:

Exemplo 1

local a = 1
::rótulo:: print("--- goto rótulo ---)")
a = a+1
if a < 3 then
    goto rótulo   -- a menor que 3 ao invés de
end
O resultado da saída é:
--- goto rótulo ---
--- goto rótulo ---

do resultado de saída, podemos ver que a saída foi repetida uma vez mais --- goto rótulo ---

O seguinte exemplo demonstra que podemos definir várias instruções em um rótulo:

Exemplo 2

i = 0
::s1:: do
  print(i)
  i = i+1
end
if i>3 then
  os.exit()   -- i maior que 3 ao sair
end
goto s1

O resultado da saída é:

0
1
2
3

Com goto, podemos implementar a função continue:

Exemplo 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

O resultado da saída é:

1   yes continue
i'm end
2   yes continue
i'm end
3    no continue
i'm end

Loop do Lua