QB64.com

QB64 is a modern extended BASIC programming language that retains QBasic/QuickBASIC 4.5 compatibility and compiles native binaries for Windows, Linux, and macOS.

GOSUB sends the program flow to a sub procedure identified by a line number or label.

Syntax

GOSUB {lineNumber label}

Description

QBasic

Example(s)

Simple usage of GOSUB


PRINT "1. It goes to the subroutine."
GOSUB subroutine
PRINT "3. And it returns."
END

subroutine:
PRINT "2. It is at the subroutine."
RETURN



1. It goes to the subroutine.
2. It is at the subroutine.
3. And it returns.

What happens if two GOSUB executes then two RETURN’s?


start: 
 
a = a + 1 
IF a = 1 THEN GOSUB here: PRINT "It returned to IF a = 1": END 
IF a = 2 THEN GOSUB there: PRINT "It returned to IF a = 2": RETURN

here: 
PRINT "It went here." 
GOTO start

there: 
PRINT "It went there." 
RETURN 


It went here.
It went there.
It returned to IF a = 2
It returned to IF a = 1

Explanation: When a = 1 it uses GOSUB to go to “here:”, then it uses GOTO to go back to “start:”. a is increased by one so when a = 2 it uses GOSUB to go to “there:”, and uses RETURN to go the last GOSUB (which is on the IF a = 2 line), it then encounters another RETURN which makes it return to the first GOSUB call we used on the IF a = 1 line.

See Also