Kirjautuminen

Haku

Tehtävät

Hakemisto: QBasic: Silmukat ja ehtolauseet: DO ... LOOP

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 osatTehtävä
ei oleDO ... 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 osatTehtävä
käskylohkomikä 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

Tietoa sivustosta