Sub (explanatory): Difference between revisions
(Created page with "A '''SUB''' procedure is a procedure within a program that can calculate and return multiple parameter values just like a full program. {{PageSyntax}} :: '''SUB Procedure_name''' [(''parameter''[, ''list''...])] :: ... :: ... 'procedure variable definitions and statements :: ... :: '''END SUB''' {{Parameters}} * Parameters passed after the procedure call must match the variable types in the SUB parameters in order. * If there are no ''parameter''s passed or they are...") |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''SUBs''', short for subroutines, are like [[statement|statements]] but are user-defined. You define a '''SUB''' by using the [[SUB]] statement. When a subroutine is called, then it will execute the code within the [[SUB]] until it reaches [[END SUB]] or [[EXIT SUB]]. | |||
The [[CALL]] statement can be used to execute the code of a subroutine, but is not required. When [[CALL]] is used, then the [[argument|arguments]] must be enclosed with paranteses. | |||
'''SUBs''' do not return a value. However, altering the argument variables within the subroutine will cause the same changes to the respective variables given in the subroutine call. Variables that are not arguments of the subroutine will not be changed if used within the subroutine unless they are [[SHARED]]. | |||
The '''SUBs''' must be placed after all other code in a program | |||
{{PageExamples}} | |||
{{CodeStart}} | ;Example 1:Demonstration of some subs. | ||
{{CodeStart}} | |||
printsometext | |||
{{Cl|CALL}} printmoretext | |||
{{Cl| | |||
{{Cl|SUB}} | {{Cl|SUB}} printsometext | ||
{{Cl|PRINT}} "This is within the printsometext sub." | |||
{{Cl|EXIT SUB}} | |||
{{Cl|PRINT}} "This is never shown as it encounters EXIT SUB first." | |||
{{Cl| | {{Cl|END SUB}} | ||
{{Cl|END SUB}} | |||
{{Cl|SUB}} printmoretext | |||
{{Cl|PRINT}} "This is within the printmoretext sub." | |||
{{Cl|END SUB}} | |||
{{CodeEnd}} | {{CodeEnd}} | ||
;Example 2:Variables that are used as arguments changes outside the sub when they are changed within the sub. | |||
{{CodeStart}} | |||
demo hal, bal 'the variables hal and bal are used as arguments when calling the sub. | |||
{{Cl|PRINT}} hal, bal 'the variables have now been changed by the sub. | |||
hal = 0 | |||
bal = 0 | |||
demo 1, 2 | |||
{{Cl|PRINT}} hal, bal 'the variables have not been changed by the sub as the variables wasn't used as arguments. | |||
{{Cl|PRINT}} | |||
{{Cl| | {{Cl|SUB}} demo (hal, bal) | ||
hal = 3 | |||
bal = 4 | |||
{{Cl|END SUB}} | {{Cl|END SUB}} | ||
{{CodeEnd}} | {{CodeEnd}} | ||
{{PageSeeAlso}} | |||
* [[ | * [[SUB]], [[FUNCTION]] | ||
* [[ | * [[Function (explanatory)]], [[Statement]] | ||
* [[ | * [[Argument]] | ||
{{PageNavigation}} | {{PageNavigation}} |
Latest revision as of 01:15, 29 January 2023
SUBs, short for subroutines, are like statements but are user-defined. You define a SUB by using the SUB statement. When a subroutine is called, then it will execute the code within the SUB until it reaches END SUB or EXIT SUB.
The CALL statement can be used to execute the code of a subroutine, but is not required. When CALL is used, then the arguments must be enclosed with paranteses.
SUBs do not return a value. However, altering the argument variables within the subroutine will cause the same changes to the respective variables given in the subroutine call. Variables that are not arguments of the subroutine will not be changed if used within the subroutine unless they are SHARED.
The SUBs must be placed after all other code in a program
Examples
- Example 1
- Demonstration of some subs.
printsometext CALL printmoretext SUB printsometext PRINT "This is within the printsometext sub." EXIT SUB PRINT "This is never shown as it encounters EXIT SUB first." END SUB SUB printmoretext PRINT "This is within the printmoretext sub." END SUB |
- Example 2
- Variables that are used as arguments changes outside the sub when they are changed within the sub.
demo hal, bal 'the variables hal and bal are used as arguments when calling the sub. PRINT hal, bal 'the variables have now been changed by the sub. hal = 0 bal = 0 demo 1, 2 PRINT hal, bal 'the variables have not been changed by the sub as the variables wasn't used as arguments. SUB demo (hal, bal) hal = 3 bal = 4 END SUB |
See also