DO ... LOOP-silmukka toistaa niiden välissä olevaa käskylohkoa niin kauan kuin ehtolause on tosi.
DO [WHILE|UNTIL[ehto] [käskylohko] LOOP
tai
DO [käskylohko] LOOP [WHILE|UNTIL ehto]
DO ... LOOP-silmukan eri osat ja niiden tehtävät:
Pakolliset osat | Tehtävä | |||
ei ole | DO ... LOOP-silmukassa ei ole muuta pakollista kuin DO ja LOOP, mutta vähintään toistoehto on suositeltavaa laittaa (jotta ei tulisi päättymätöntä silmukkaa!) | |||
Vapaaehtoiset osat | Tehtävä | |||
käskylohko | mikä tahansa QBasicin lause (tai useampi lause) | [tr] | WHILE|UNTIL ehto (DOn perässä) | WHILE toistaa käskylohkoa niin kauan kun ehto on tosi ja UNTIL toistaa käskylohkoa niin kauan kuin ehto on epätosi. Ehto voi olla mikä tahansa totuuslause (esim. DO WHILE a > b). |
WHILE|UNTIL ehto (LOOPin perässä) | Muuten aivan sama kuin DOn perässä, mutta käskylohko suoritetaan vähintään kerran, vaikka ehto olisikin heti alussa epätosi. |
Esimerkki:
laskuri = 1 ' Laskurin alkuarvo loppu = 1000000 ' Missä vaiheessa silmukka lopetetaan DO WHILE laskuri <= loppu AND INKEY$ = "" ' Käskylohkoa toistetaan aina, kun laskuri on pienempi tai yhtäsuuri kuin loppu ja kun mitään näppäintä ei ole painettu LOCATE 1, 1 ' Tekstit kirjoitetaan ruudun ylälaitaan PRINT "Laskuri on tällä hetkellä"; laskuri ' Näytetään tehtyjen toistojen määrä (laskurin arvo) PRINT "paina mitä tahansa näppäintä poistuaksesi silmukasta" laskuri = laskuri + 1 ' Kasvatetaan laskurin arvoa, jotta silmukka ei olisi päättymätän LOOP CLS PRINT "Jaahas, joko se silmukassa pyöriminen loppui?" ' Jälleen kerran jokin tyhmä huomautus loppuun, jotta silmukasta poistuminen voidaan todeta
Muuta aiheeseen liittyvää:
WHILE ... WEND, FOR ... NEXT