Voit toistaa samaa komentoryhmää peräkkäin käyttämällä jotakin silmukkarakenteista. Käytettävissä on useita erilaisia silmukkatyyppejä. Jokainen niistä suorittaa silmukan eri tavalla ehtotestin mukaisesti.
Silmukkakomennot ja silmukoihin liittyvät komennot sijaitsevat ohjelmaeditorin Control (Kontrolli)- ja Transfers (Siirrot) -valikoissa.
Kun lisäät jonkin silmukkarakenteen, sen malli lisätään kohdistimen kohdalle. Sen jälkeen voit aloittaa silmukassa suoritettavien komentojen syöttämisen.
For...EndFor-silmukka käyttää laskuria kontrolloidakseen silmukan toistokertojen määrää. For-komennon syntaksi on:
Huomaa: Loppuarvon on oltava pienempi kuin alkuarvo, mikäli lisäys on negatiivinen.
|
For |
-muuttuja, |
alku, |
loppu [, |
lisäys |
|
|
À |
Á |
 |
à |
|
À |
Muuttuja, jota käytetään laskurina |
|
Á |
Laskurin arvo, jota käytetään, kun For suoritetaan ensimmäisen kerran |
|
 |
Poistuu silmukasta, kun muuttuja ylittää tämän arvon |
|
à |
Lisätään laskuriin aina, kun For suoritetaan seuraavan kerran (Jos tämä valinnainen arvo jätetään pois, lisäys on 1.) |
Kun For suoritetaan, muuttujan arvoa verrataan loppuarvoon. Jos muuttuja ei ylitä loppuarvoa, silmukka suoritetaan; muussa tapauksessa kontrolli hyppää EndFor-komentoa seuraavaan komentoon.
Huomaa: For-komento lisää automaattisesti laskurin muuttujan arvoa, jotta funktio tai ohjelma voi poistua silmukasta tietyn toistokertojen määrän jälkeen.
Silmukan (EndFor) lopussa kontrolli hyppää takaisin For-komentoon, jossa muuttujan arvoa lisätään ja sitä verrataan loppuarvoon.
Esimerkki:
|
For i,0,5,1 Disp i À EndFor Disp i Á |
|
À |
Näyttää vastauksena 0, 1, 2, 3, 4 ja 5. |
|
Á |
Näyttää vastauksen 6. Kun muuttujan arvo on lisääntynyt lukuun 6, silmukkaa ei suoriteta. |
Huomaa: Voit määrittää laskurin muuttujan paikalliseksi, jos sitä ei tarvitse tallentaa funktion tai ohjelman päättymisen jälkeen.
While...EndWhile-silmukka toistaa komentolohkoa niin kauan kuin määritetty ehto on tosi. While-komennon syntaksi on:
While -ehto
While-komentoa suoritettaessa määritetään ehdon totuusarvo. Jos ehto on tosi, silmukka suoritetaan; muussa tapauksessa kontrolli hyppää EndWhile-komentoa seuraavaan komentoon.
Huomaa: While-komento ei muuta ehtoa automaattisesti. Sinun on syötettävä komennot, jotka mahdollistavat funktion tai ohjelman poistumisen silmukasta.
Silmukan (EndWhile) lopussa kontrolli hyppää takaisin While-komentoon, jossa ehdon totuusarvo määritetään uudelleen.
Jotta silmukka voidaan suorittaa ensimmäisen kerran, ehdon on oltava aluksi tosi.
| • | Ehtoon viittaavat mahdolliset muuttujat on asetettava ennen While-komentoa. (Voit syöttää arvot valmiiksi funktioon tai ohjelmaan tai voit kehottaa käyttäjää syöttämään arvot.) |
| • | Silmukan tulee sisältää komennot, jotka muuttavat ehdon arvoja siten, että se on lopuksi epätosi. Muussa tapauksessa ehto on aina tosi, ja funktio tai ohjelma ei voi poistua silmukasta (= ikuinen silmukka). |
Esimerkki:
|
0&x À While x<5 Disp x Á x+1&x  EndWhile Disp x à |
|
À |
Asettaa aluksi x:n arvon. |
|
Á |
Näyttää vastauksena 0, 1, 2, 3 ja 4. |
|
 |
Lisää x:n arvoa. |
|
à |
Näyttää vastauksen 5. Kun x:n arvo on lisääntynyt lukuun 5, silmukkaa ei suoriteta. |
Loop...EndLoop luo ikuisen silmukan, jota toistetaan loputtomasti. Loop-komennossa ei ole argumentteja.
|
Loop----------------EndLoop--------
|
Tyypillisesti silmukkaan lisätään komennot, jotka sallivat ohjelman poistua silmukasta. Yleisesti käytettyjä komentoja ovat: If, Exit, Goto ja Lbl (tunnus). Esimerkki:
|
0&x Loop Disp x x+1&x If x>5 À Exit EndLoop Disp x Á |
|
À |
If-komento tarkistaa ehdon. |
|
Á |
Poistuu silmukasta ja hyppää tähän, kun x on lisääntynyt arvoon 6. |
Huomaa: Exit-komento poistuu nykyisestä silmukasta.
Tässä esimerkissä If-komento voi olla missä tahansa kohtaa silmukassa.
|
Kun If-komento on: |
Silmukka on: |
|
Silmukan alussa |
Suoritetaan vain, jos ehto on tosi. |
|
Silmukan lopussa |
Suoritetaan vähintään kerran ja toistetaan vain, jos ehto on tosi. |
If-komento voi käyttää myös Goto-komentoa ohjelman kontrollin siirtämiseksi määritettyyn Lbl (tunnus) -komentoon.
Cycle-komento siirtää ohjelman kontrollin välittömästi seuraavaan silmukan iteraatioon (ennen kuin nykyinen iteraatio on suoritettu loppuun). Tämä komento toimii silmukoiden For...EndFor, While...EndWhile ja Loop...EndLoop kanssa.
Vaikka Lbl (tunnus)- ja Goto-komennot eivät ole tarkasti ottaen silmukkakomentoja, niiden avulla voidaan luoda ikuinen silmukka. Esimerkki:
|
Lbl ALKU
|
Kuten Loop...EndLoop-silmukan, tämänkin silmukan tulee sisältää komennot, jotka sallivat funktion tai ohjelman poistua silmukasta.