Labels are identifiers where the program execution flow can jump into using either GO TO or GO SUB. Unlike variables identifiers, their scope is always global (even if declared inside functions or subroutines). Usage of labels is discouraged.
In ZX BASIC, line numbers are treated as labels:
10 REM An endless print loop 20 PRINT "Hello world!" 30 GO TO 20
Since line numbers are just labels, the order sequence is irrelevant. The following listing is equivalent to the above one. Notice the out-of-order line sequence:
10 REM An endless print loop 30 PRINT "Hello world!" 20 GO TO 30
Identifiers can be used as labels. A label identifier is declared by writing it at the beginning of a line, followed by a colon:
REM Declaring a label mylabel:
endlessloop: PRINT "Hello world!" GO TO endlessloop
A label can also be referred before it has been declared:
GO TO EndOfRoutine REM Instructions here are skipped EndOfRoutine: PRINT "End Of Routine"