Obsługa podprogramów > GoSub - polecenie

Drukuj

GoSub - polecenie symp

Polecenie powoduje zawieszenie wykonania programu w danym miejscu i kontynuację wykonania programu od miejsca oznaczonego etykietą, czyli tzw. skok do innego miejsca programu. Po wykonaniu przez program instrukcji Return nastąpi powrót do miejsca wystąpienia polecenia GoSub i kontynuację wykonania programu od instrukcji następnej po GoSub. Polecenia GoSub może być zagnieżdżane, tzn polecenia GoSub mogą być kolejno wywoływane bez wykonywania instrukcji Return. W tej sytuacji wykonanie polecenia Return spowoduje powrót do miejsca ostatniego wywołania GoSub, analogicznie kolejne instrukcje Return będą powodowały powrót do miejsc ostatnich w kolejności wywołań GoSub. Wywołanie polecenia Return bez wcześniejszego wywołania GoSub powoduje przerwanie wykonania programu i komunikat o błędzie. Polecenia GoTo mogą być dowolnie wymieszane z poleceniami GoSub i Return.

 

Składnia

GoSub etykieta

 

Argumenty

Typ

Nazwa

Opis

Etykieta

etykieta

Nazwa etykiety oznaczającej miejsce w programie.

 

Wartość zwracana

Nie zwraca wartości.

 

Przykład

Int wart = 0
//Skok do pętli licznika
GoSub wyj
Message "Miejsce powrotu po wykonaniu polecenia Return "
//Okno z komunikatem o zakończeniu demonstracji licznika
Form "Informacja o zakończeniu pętli",400,200
Ground 0,255,0
Button "O&K", 150, 110, 100, 24, -1
Text "Zakończono pokaz działania pętli z poleceniem GoSub",50,30,300,24
ExecForm
End
//Etykieta
wyj:
//Okno z komunikatem o wartości licznika
Form "Liczenie do sześciu",400,200
Ground 255,255,0
Button "O&K", 150, 110, 100, 24, -1
Text "Pokaz działania pętli z poleceniem GoSub",100,10,200,24
Text " < 6. Naciśnij OK w celu powiększenia stanu licznika",130,50,250,24
Edit "Wartość licznika",wart,110,50,20,24
ExecForm
//Struktura sprawdzania i powiększania stanu licznika
If wart <= 4 then
wart = wart + 1
//Skok do etykiety
GoTo wyj:
Else
//Wyjście z pętli
Return
EndIf