Sub: Difference between revisions
No edit summary |
No edit summary |
||
Line 55: | Line 55: | ||
== Related Items == | == Related Items == | ||
[[call| | [[call|Call]], [[function|Function]] | ||
[[Category:Language Reference]] | [[Category:Language Reference]] |
Revision as of 01:46, 24 August 2012
Sub procedurename[(arglist)]
- [statements]
- [Exit Sub]
- [statements]
- [statements]
End Sub
Description
Sub declares a procedure, procdurename, that executes statements, with arglist as parameters, with no return value. The required parameter, procedurename, is used to call the procedure, and must follow standard variable naming conventions. The optional parameter list, arglist, is a comma separated list of variables that are passed to the procedure when it is called. The optional component, statements, will be executed as the body of the procedure. Any number of optional Exit Sub statements can be used to exit the procedure.
Each member of arglist is an argument passed to the procedure. Simple variables, such as strings and numbers, are passed by value. Complex variables, such as arrays and objects, are passed by reference. Each member of arglist can be used within the procedure to reference a value passed in. It follows standard variable naming procedure.
A Function procedure will be called as a Sub procedure if the return value is not stored in a variable or used in an expression.
A Sub procedure called with zero or one arguments may be called with empty parenthesis or the single argument in parenthesis. NS Basic/X treats a single expression enclosed in parenthesis as a single expression, not a one-element argument list.
Example
Rem Sub Example 'Sub declares a procedure Dim PriceA, PriceB PrintMenu "Wednesday" PriceA = 53 PriceB = 44 Sort PriceA, PriceB Print "Lowest Price:", PriceA Sub PrintMenu(day) If day = "Wednesday" Then Print "Wednesday is Salisbury Steak day" End If End Sub Sub Sort(BYREF x, BYREF y) Dim Temp If x > y Then Temp = y y = x x = Temp Exit Sub Else Temp = x x = y y = Temp End If End Sub
Output
Wednesday is Salisbury Steak day Lowest Price:44