{{fbdoc item="title" value="Labels"}}---- Defines a location in a program. {{fbdoc item="syntax"}}## //symbolname// **:** //or// //literalnumber// ## {{fbdoc item="desc"}} A label can define a place in a program where ##[[KeyPgGoto|Goto]]## or ##[[KeyPgGosub|Gosub]]## can jump to. A label can also mark ##[[KeyPgData|Data]]## blocks, allowing ##[[KeyPgRestore|Restore]]## to change the ##[[KeyPgRead|Read]]## sequence. A label can be a positive integer line number or a ##//symbolname//##. In both cases, the label must start at the first column of line. A ##//symbolname//## label must end with a colon (:) character. {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/proguide/labels/labels_1.bas"}}%%(freebasic) '' Compile with -lang fblite or qb #lang "fblite" beginning: 3 Print "Hello World!" Goto beginning %% {{fbdoc item="filename" value="examples/manual/proguide/labels/labels_2.bas"}}%%(freebasic) '' compile with -lang qb '$lang: "qb" '' Labels can be used to "bookmark" DATA blocks, allowing RESTORE to alter the READ sequence. Read a,b,c Restore here Read d,e Print a,b,c,d,e Data 1,2,3,4,5 here: Data 6,7,8 %% Output: %% 1,2,3,6,7 %% {{fbdoc item="lang"}} - Line numbers with decimals is available only in the //[[CompilerOptlang|-lang qb]]// dialect. {{fbdoc item="diff"}} - None if compiled in the //[[CompilerOptlang|-lang qb]]// dialect. {{fbdoc item="see"}} - ##[[KeyPgGosub|Gosub]]## - ##[[KeyPgGoto|Goto]]## - ##[[KeyPgRestore|Restore]]## {{fbdoc item="back" value="CatPgProgrammer|Programmer's Guide"}}