{{htmlmetatags>metatag-robots=()
metatag-title=(DO...LOOP | ugBASIC User Manual)
metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum)
metatag-description=(Manual page for DO...LOOP)
metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png)
metatag-og:title=(DO...LOOP | ugBASIC User Manual)
metatag-og:description=(Manual page for DO...LOOP)
}}
====== ugBASIC User Manual ======
===== DO...LOOP ✓ =====
===== SYNTAX =====
DO
... instructions ...
LOOP
==== PURPOSE ====
The ''DO...LOOP'' command is used for repeatedly executing a
block of statements. It creates a loop, which is a sequence of
statements that is executed repeatedly, forever (unless exits
using the ''EXIT'' keyword). You can nest ''DO LOOP''s within other
loops, creating more complex control structures.
If you want to repeat the statements a set number of times,
the ''FOR...NEXT'' statement is usually a better choice,
while if you want to repeat for specific conditions,
you should use the ''WHILE...WEND'' and ''REPEAT...UNTIL''
statements.
It can be used, i.e., to ask the user to enter a choice and repeat
the menu until the exit option is selected. If you want to exit a loop,
make sure the exit condition of the loop
is changed within the loop itself, otherwise you may create an
infinite loop. If possible, avoid performing complex calculations
within the exit condition, as they will be repeated with each iteration
of the loop.
==== EXAMPLE ====
DO
x = x + 1
LOOP
See also the following example files:
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_loops_01.bas|control_loops_01.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_loops_02.bas|control_loops_02.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_loops_03.bas|control_loops_03.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_loops_04.bas|control_loops_04.bas]]''
* ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_loops_05.bas|control_loops_05.bas]]''
==== ABBREVIATION ====
DoLp
==== AVAILABLE ON ====
*
* Atari (400/800)
* Atari XL/XE
* Commodore 128 (MOS 8502)
* Commodore 128 (Zilog Z80)
* Commodore 64
* Commodore 64+REU
* TRS-80 Color Computer
* TRS-80 Color Computer 3
* ColecoVision
* Amstrad CPC 664
* Dragon 32
* Dragon 64
* Thomson MO5
* Thomson MO5
* Olivetti Prodest PC128
* Commodore PLUS/4
* SEGA SC-3000
* SEGA SG-1000
*
* VG-5000
* Commodore VIC-20
* ZX Spectrum 48
==== SEE ALSO ====
[[FOR...NEXT]] [[WHILE...WEND]] [[REPEAT...UNTIL]]
==== ANY PROBLEM? ====
If you have encountered a problem using this command, if you think there is a bug or the explanation is unclear, please [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=ISSUE ON DO...LOOP|open an issue]] for this keyword on GitHub. Thank you!===== POWERED BY =====
[[:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]