Πρόταση GoSub...Return

Καλεί μια υπορουτίνα που δείχνεται από ετικέτα μέσα σε Sub ή Function. Οι επόμενες προτάσεις της ετικέτας εκτελούνται μέχρι την επόμενη πρόταση Return. Κατόπιν, το πρόγραμμα συνεχίζει με την πρόταση που ακολουθεί την πρόταση GoSub.

Σύνταξη:


Ετικέτα GoSub[:]

Παράμετροι:

ετικέτα:Ταυτοποιητής γραμμής που δείχνει πού θα συνεχίσει η εκτέλεση. το εύρος μιας ετικέτας είναι αυτό της ρουτίνας στην οποία ανήκει.

Η δήλωση GoSub καλεί μια τοπική υπορουτίνα που δείχνεται από ετικέτα μέσα από υπορουτίνα ή συνάρτηση. Το όνομα της ετικέτας πρέπει να τελειώνει με άνω-κάτω τελεία (":").


  Sub/Function foo
      ' δηλώσεις
      GoSub label
      ' δηλώσεις
      Exit Sub/Function
  label:
      ' δηλώσεις
      Return
  End Sub/Function
Εικονίδιο προειδοποίησης

Αν το πρόγραμμα συναντήσει μια πρόταση Return χωρίς να προηγείται μια GoSub, η LibreOffice Basic επιστρέφει ένα μήνυμα σφάλματος. Χρησιμοποιείστε Exit Sub ή την Exit Function για να βεβαιωθείτε ότι το πρόγραμμα θα αφήσει μια διαδικασία Sub ή Function πριν φθάσει στην επόμενη πρόταση Return.


Το ακόλουθο παράδειγμα παρουσιάζει τη χρήση των GoSub και Return. Εκτελώντας δύο φορές κάποια ενότητα του προγράμματος, το πρόγραμμα υπολογίζει την τετραγωνική ρίζα δύο αριθμών που έχει εισάγει ο χρήστης.

Παράδειγμα:


Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
    iInputa = Int(InputBox("Εισάγετε τον πρώτο αριθμό: ","ΕίσοδοςΑριθμού"))
    iInputb = Int(InputBox(" Εισάγετε τον δεύτερο αριθμό: ","ΕίσοδοςΑριθμού"))
    iInputc=iInputa
    GoSub SquareRoot
    Print "Η τετραγωνική ρίζα του";iInputa;" είναι ";iInputc
    iInputc=iInputb
    GoSub SquareRoot
    Print "Η τετραγωνική ρίζα του ";iInputb;" είναι ";iInputc
    Exit Sub
SquareRoot:
    iInputc=sqr(iInputc)
    Return
End Sub

Παρακαλούμε, υποστηρίξτε μας!