{{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 ==== Repeats a block of statements. Use a ''DO...LOOP'' structure when you want to repeat a set of statements an indefinite number of times, or until an ''EXIT'' control out of the loop. 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. The ''DO...LOOP'' structure gives you less flexibility than the ''WHILE'' / ''UNTIL'' statements because you cannot decide whether to end the loop when a specific condition stops being ''TRUE'' or when it first becomes ''TRUE''. It also disallow you to test condition at either the start or the end of the loop. You can nest ''DO...LOOPS'' by putting one loop within another. You can also nest different kinds of control structures within each other. ==== 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 ==== Do...Lp ==== 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 ==== 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 |}}]]