mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-30 18:50:15 +00:00
49 lines
1.7 KiB
Text
49 lines
1.7 KiB
Text
|
'''ON...GOSUB''' is a control-flow statement that branches to a line or label in a list depending on a numerical expression.
|
||
|
|
||
|
|
||
|
{{PageSyntax}}
|
||
|
:: '''ON''' ''numerical-expression'' '''GOSUB''' ''lineornumber[,lineornumber][,...]''
|
||
|
|
||
|
|
||
|
* The ''numerical-expression represents'' the ''line'' or ''label'' that it should branch to, 1 branches to the first line or label, 2 branches to the second, etc.
|
||
|
* In QB 4.5 the list can contain a maximum of 60 line numbers or labels, while QB64 has no limit.
|
||
|
* The procedure must be used after the number value is determined or in a loop to monitor current user events.
|
||
|
* [[RETURN]] returns to the next code statement after the ON...GOSUB statement. [[END]] or [[SYSTEM]] can be used to end program.
|
||
|
* '''Note:''' [[SELECT CASE]] provides a much more convenient way of doing this task.
|
||
|
|
||
|
|
||
|
''Example:''
|
||
|
{{CodeStart}} '' ''
|
||
|
{{Cl|CLS}}
|
||
|
a = 2
|
||
|
''ON'' a '''GOSUB''' hello, hereweare, 143
|
||
|
{{Cl|PRINT}} "Also notice the RETURN statement that can be used with GOSUB!"
|
||
|
{{Cl|END}}
|
||
|
|
||
|
hello:
|
||
|
{{Cl|PRINT}} "Hello, with a = 1 you get to see this!"
|
||
|
{{Cl|END}}
|
||
|
|
||
|
hereweare:
|
||
|
{{Cl|PRINT}} "with a = 2 here we are...return to line after ON."
|
||
|
{{Cl|RETURN}}
|
||
|
|
||
|
143
|
||
|
{{Cl|PRINT}} "Line 143, with a = 3 you get to see this!"
|
||
|
{{Cl|END}} '' ''
|
||
|
{{CodeEnd}}
|
||
|
{{OutputStart}}
|
||
|
with a = 2 here we are...return to line after ON.
|
||
|
Also notice the RETURN statement that can be used with GOSUB!
|
||
|
{{OutputEnd}}
|
||
|
|
||
|
:''Explanation:'' Since a equals to 2 it goes to the second item in the list (hereweare) and branches the program to there. Try changing 'a' to 1 or 3!
|
||
|
|
||
|
|
||
|
''See also:''
|
||
|
* [[ON...GOTO]]
|
||
|
* [[GOSUB]], [[GOTO]]
|
||
|
* [[SELECT CASE]], [[RETURN]]
|
||
|
|
||
|
|
||
|
{{PageNavigation}}
|