Instrucción GoSub… Return
Llama a una subrutina indicada por una etiqueta desde una subrutina o una función. La instrucción que sigue a la etiqueta se ejecuta mientras no se encuentre una instrucción Return. Después el programa continúa con la instrucción que sigue a GoSub .
Sintaxis:
Consulte los parámetros
Parámetros:
Sub/Function
bloque de instrucciones
Etiqueta
bloque de instrucciones
Etiqueta GoSub
Exit Sub/Function
Etiqueta:
bloque de instrucciones
Return
Final de Sub/Function
La instrucción GoSub llama a una subrutina local indicada por una etiqueta desde dentro de una subrutina o función. El nombre de la etiqueta debe terminar con un carácter de dos puntos (":").
Si el programa encuentra una instrucción Return que no va precedida de GoSub, LibreOffice Basic devuelve un mensaje de error. Use Exit Sub o Exit Function para asegurarse de que el programa salga de una Sub o Function antes de llegar a la siguiente instrucción Return.
El ejemplo siguiente demuestra el uso de GoSub y Return. Al ejecutar una sección de programa dos veces, éste calcula la raíz cuadrada de dos números que ha introducido el usuario.
Ejemplo:
Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
iInputa = Int(InputBox("Escriba el primer número: ","Entrada de número"))
iInputb = Int(InputBox("Escriba el segundo número: ","Entrada de número"))
iInputc=iInputa
GoSub SquareRoot
Print "La raíz cuadrada de";iInputa;" es";iInputc
iInputc=iInputb
GoSub SquareRoot
Print "La raíz cuadrada de";iInputb;" es";iInputc
Exit Sub
SquareRoot:
iInputc=sqr(iInputc)
Return
End Sub