RETURN: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "'''RETURN''' is used in GOSUB procedures to return to the original call code line or a specified line label. {{PageSyntax}} :: '''RETURN''' [{''linelabel''|''linenumber''}] {{Parameters}} * 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...")
 
No edit summary
Line 15: Line 15:
* RETURN is not used in error handling procedures. Error procedures use [[RESUME]] ''line number'' or [[RESUME|RESUME NEXT]].
* 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.
* 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.  
* 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.
* To avoid errors, place [[GOSUB]] procedures AFTER the main program code [[END]] or after an [[EXIT SUB]] or [[EXIT FUNCTION]] call.


Line 30: Line 30:
five:
five:
{{Cl|PRINT}} "Aha! Five!"
{{Cl|PRINT}} "Aha! Five!"
{{Cl|RETURN}} '' ''
{{Cl|RETURN}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}
{{OutputStart}}
Line 49: Line 49:
''Example 2:'' Returns to a specific line label.
''Example 2:'' Returns to a specific line label.
{{CodeStart}}
{{CodeStart}}
{{Cl|GOSUB}} hey  
{{Cl|GOSUB}} hey
{{Cl|PRINT}} "it didn't go here."  
{{Cl|PRINT}} "it didn't go here."
hoho:  
hoho:
{{Cl|PRINT}} "it went here."  
{{Cl|PRINT}} "it went here."
{{Cl|END}}  
{{Cl|END}}


hey:  
hey:
{{Cl|RETURN}} hoho  
{{Cl|RETURN}} hoho
{{CodeEnd}}
{{CodeEnd}}
{{small|Code by Cyperium}}
{{small|Code by Cyperium}}
Line 66: Line 66:




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

Revision as of 02:29, 23 January 2023

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


Syntax

RETURN [{linelabel|linenumber}]


Template:Parameters

  • 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 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 "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.

FOR a = 1 TO 10
PRINT a
IF a = 5 THEN GOSUB five
NEXT
END       'END or SYSTEM stop the program before the execution of a sub procedure

five:
PRINT "Aha! Five!"
RETURN
 1
 2
 3
 4
 5
Aha! Five!
 6
 7
 8
 9
 10


Example 2: Returns to a specific line label.

GOSUB hey
PRINT "it didn't go here."
hoho:
PRINT "it went here."
END

hey:
RETURN hoho
Code by Cyperium
it went here.



See also:



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage