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

Sentencia goto de Lua

Ciclos de Lua

La declaración goto en el lenguaje Lua permite que el flujo de control se desplace de manera incondicional a la instrucción marcada.

Sintaxis

El formato de sintaxis es como se muestra a continuación:

goto Label

El formato de Label es:

:: Label ::

El siguiente ejemplo muestra el uso de goto en una declaración de condición:

Ejemplo 1

local a = 1
::label:: print("--- goto label ---)
a = a+1
if a < 3 then
    goto label   -- a menor que 3 cuando se salta al etiqueta label
end
El resultado de la salida es:
--- goto label ---
--- goto label ---

Como se puede ver en la salida de salida, se produjo una salida adicional --- goto label ---

El siguiente ejemplo muestra que se pueden establecer múltiples instrucciones en un label:

Ejemplo 2

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

El resultado de la salida es:

0
1
2
3

Con goto, podemos implementar la función continue:

Ejemplo 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

El resultado de la salida es:

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

Ciclos de Lua