'''RETURN''' is used in [[GOSUB]] procedures to return to the original call code line or a specified line label.


{{PageSyntax}}
:: '''RETURN''' [{''linelabel''|''linenumber''}]


{{PageParameters}}
* RETURN without parameters returns to the code immediately following the original [[GOSUB]] call.
* ''line number'' or ''linelabel'' after the RETURN statement returns code execution to that label.


''Usage:''
* Normally required at the end of a [[GOSUB]] procedure unless the procedure returns using a loop.
* RETURN is not used in error handling procedures. Error procedures use [[RESUME]] ''line number'' or [[RESUME|RESUME NEXT]].
* GOSUB procedures use line numbers or line labels designated with a colon after the number or label.
* If RETURN is encountered without a previous [[GOSUB]] call a [[ERROR Codes|"RETURN without GOSUB" error]] is produced. 
* To avoid errors, place [[GOSUB]] procedures AFTER the main program code [[END]] or after an [[EXIT SUB]] or [[EXIT FUNCTION]] call.



''Example 1:'' Returns after a Gosub.
{{CodeStart}}
{{Cl|FOR...NEXT|FOR}} a = 1 {{Cl|TO}} 10
{{Cl|PRINT}} a
{{Cl|IF...THEN|IF}} a = 5 {{Cl|THEN}} {{Cl|GOSUB}} five
{{Cl|NEXT}}
{{Cl|END}}       'END or SYSTEM stop the program before the execution of a sub procedure

five:
{{Cl|PRINT}} "Aha! Five!"
{{Cl|RETURN}} '' ''
{{CodeEnd}}
{{OutputStart}}
 1
 2
 3
 4
 5
Aha! Five!
 6
 7
 8
 9
 10
{{OutputEnd}}


''Example 2:'' Returns to a specific line label.
{{CodeStart}}
{{Cl|GOSUB}} hey 
{{Cl|PRINT}} "it didn't go here." 
hoho: 
{{Cl|PRINT}} "it went here." 
{{Cl|END}} 

hey: 
{{Cl|RETURN}} hoho 
{{CodeEnd}}
{{small|Code by Cyperium}}
{{OutputStart}}
it went here.
{{OutputEnd}}




''See also:'' 
* [[GOSUB]], [[GOTO]]
* [[RESUME]]


{{PageNavigation}}
