Contenuto

# Istruzione GoSub...Return

Chiama una subroutine indicata con un'etichetta all'interno di una Sub o da una Function. Le istruzioni che seguono l'etichetta vengono eseguite fino alla successiva istruzione Return. In seguito, il programma continua con l'istruzione successiva a GoSub.

### Sintassi:

    GoSub label[:]

### Parametri:

label: un identificatore per la riga che indica il punto dal quale continuare l'esecuzione. La visibilità di una label è all'interno della routine alla quale appartiene.

L'istruzione GoSub chiama una subroutine locale indicata con un'etichetta dall'interno di una subroutine o di una funzione. Il nome dell'etichetta deve terminare con due punti (":").

      Sub/Function foo
          ' istruzioni
          GoSub label
          ' istruzioni
          Exit Sub/Function
      label:
          ' istruzioni
          Return
      End Sub/Function

Se il programma incontra un'istruzione Return che non è preceduta da GoSub, LibreOffice Basic restituisce un messaggio di errore. Usate Exit Sub o Exit Function per fare in modo che il programma esca dalla subroutine o dalla funzione prima di raggiungere la successiva istruzione Return.

L'esempio seguente illustra l'uso di GoSub e Return. Eseguendo una sezione del programma due volte, il programma calcola la radice quadrata di due numeri inseriti dall'utente.

### Esempio:

    Sub ExampleGoSub
    Dim iInputa As Single
    Dim iInputb As Single
    Dim iInputc As Single
        iInputa = Int(InputBox("Inserite il primo numero: ","NumeroInput"))
        iInputb = Int(InputBox("Inserite il secondo numero: ","NumeroInput"))
        iInputc=iInputa
        GoSub SquareRoot
        Print "La radice quadrata di";iInputa;" è";iInputc
        iInputc=iInputb
        GoSub SquareRoot
        Print "La radice quadrata di";iInputb;" è";iInputc
        Exit Sub
    SquareRoot:
        iInputc=sqr(iInputc)
        Return
    End Sub

Argomenti correlati

Istruzione GoTo

Istruzione On...GoSub; Istruzione On...GoTo