Sentencia goto en Go
La sentencia goto en Go puede transferir incondicionalmente a una línea especificada en el proceso.
La sentencia goto suele usarse junto con sentencias condicionales. Se puede usar para lograr transferencias condicionales, formar bucles, salir del cuerpo del bucle, etc.
Sin embargo, en la programación estructurada generalmente no se recomienda el uso de la sentencia goto, para evitar confusión en el flujo del programa, lo que dificulta la comprensión y la depuración del programa.
Sintaxis
El formato de sintaxis de goto es el siguiente:
goto label; .. . label: statement;
El diagrama de flujo de la sentencia goto es el siguiente:

Ejemplo
Cuando la variable a sea igual a 15, omite esta iteración del bucle y regresa a la sentencia LOOP al inicio del bucle:
Ejemplo
import "fmt"
func main() {
/* definir variables locales */
var a int = 10
/* bucle */
LOOP: for a < 20 {
if a == 15 {
/* omitir iteración */
a = a + 1
goto LOOP
}
fmt.Printf("El valor de a es : %d\n", a)
a++
}
}
El resultado de ejecutar el ejemplo anterior es:
a的值为 : 10 a的值为 : 11 a的值为 : 12 a的值为 : 13 a的值为 : 14 a的值为 : 16 a的值为 : 17 a的值为 : 18 a的值为 : 19Otras extensiones