Return (From Gosub)
Control flow statement to return from a procedure or `GoSub`.
Syntax
`
Return [ label ]
`
Description
`Return` is used to return from a gosub `GoSub`.
Because `Return` could mean return-from-gosub or return-from-procedure, `Option Gosub` and `Option Nogosub` can be used to enable and disable `GoSub` support. When `GoSub` support is disabled, `Return` is then recognized as return-from-procedure. When `GoSub` support is enabled, `Return` is then recognized as return-from-gosub.
`Return` (from gosub) is used to return control back to the statement immediately following a previous `GoSub` call. When used in combination with `GoSub`, no return value can be specified. If the optional `label` is specified, execution continues at the specified label. If no `GoSub` was made, a runtime error is generated, and execution continues immediately after `Return`.
A `GoSub` should always have a matching `Return` statement. However, if `Return` (from gosub) is used where no `GoSub` was made, a run-time error is generated.
Example
`
'' GOSUB & RETURN example, compile with "-lang qb" or use "$lang" as below
'$lang: "qb"
Print "Let's Gosub!"
GoSub MyGosub
Print "Back from Gosub!"
Sleep
End
MyGosub:
Print "In Gosub!"
Return
`
Dialect Differences

- In the -lang fb dialect `Return` always means return-from-procedure.
- In the -lang qb dialect, `Return` means return-from-gosub by default unless changed with `Option Nogosub`, in which case the compiler will recognize `Return` as return-from-procedure.
- In the -lang fblite dialect, `Return` means return-from-procedure by default unless changed with `Option Gosub`, in which case the compiler will recognize `Return` as return-from-gosub.

Differences from QB

- None when using the -lang qb dialect.

See also

- `Sub`
- `Function`
- `GoSub`
- `Option Gosub`
- `Option Nogosub`
- `Labels`
- `Return (From Procedure)`