Täitmise kontrollimine

Täitmise kontrollerid lubavad — nagu nimetuski ütleb — kontrollida käsu täitmist.

Täitmise kontrollimise käsud on esile tõstetud tumerohelise rasvase kirjaga. Looksulud, mida väga sageli koos täitmise kontrolleritega pruugitakse, on esile tõstetud musta värviga.

Kilpkonna ootelejätmine

Kui oled juba natuke KTurtle'iga harjutanud, paned tähele, et kilpkonn võib päris kiiresti joonistada. See käsk muudab tema tegevuse aga veidi aeglasemaks.

wait
wait X

wait paneb kilpkonna X sekundiks ootama.

repeat 36 {
  forward 5
  turnright 10
  wait 0.5
}

Selle koodiga joonistatakse ringjoon, aga kilpkonn ootab igal sammul pool sekundit. See jätab mulje nii enam-vähem normaalse kiirusega liikuvast kilpkonnast - vähemalt kilpkonna kohta...

Tingimuse "kui" (if) täitmine

if
if tõeväärtus { ... }

Kood, mis seisab sulgudes, täidetakse ainult siis, kui (if) tõeväärtuse väärtus on tõene.

$x = 6
if $x > 5 {
  print "$x is greater than five!"
}

Esimesel real määratakse $x väärtuseks 6. Teisel real kasutatakse võrdlustehet $x > 5 hindamiseks. Et hinnang on tõene ehk 6 on suurem kui 5, lubab täitmise kontroller if looksulgudes oleva koodi täita.

Vastasel juhul ehk "else"

else
if tõeväärtus { ... } else { ... }

Kontrollerit else saab kasutada koos kontrolleriga if. Kood, mis seisab looksulgudes else järel, täidetakse ainult siis, kui tõeväärtuse väärtus on väär.

reset
$x = 4
if $x > 5 {
  print "$x is greater than five!"
} else {
  print "$x is smaller than six!"
}

Võrdlustehe hindab avaldist $x > 5. Et 4 ei ole suurem kui 5, on väärtuseks väär. See tähendab, et täidetakse kood, mis seisab looksulgudes else järel.

Silmus "while"

while
while tõeväärtus { ... }

Täitmise kontroller while on üsna sarnane kontrolleriga if. Nende peamine erinevus seisab selles, et while kordab looksulgudes olevat koodi seni, kuni vastus tõeväärtus on lõpuks väär.

$x = 1
while $x < 5 {
  forward 10
  wait 1
  $x = $x + 1
}

Esimesel real määratakse $x väärtuseks 1. Teisel real hinnatakse avaldist $x < 5. Et vastus sellele küsimusele on tõene, alustab täitmise kontroller while looksulgudes oleva koodi täitmist ja teeb seda seni, kuni $x < 5 on lõpuks väär. Antud juhul täidetakse looksulgudes olevat koodi neli korda, sest iga viienda rea täitmisega suureneb $x ühe võrra.

Silmus "repeat"

repeat
repeat arv { ... }

Täitmise kontroller repeat on üpris sarnane kontrolleriga while. Erinevus seisab selles, et repeat kordab sulgudes olevat koodi määratud arv kordi.

Arvestussilmus "for"

for
for muutuja = arv to arv { ... }

for on arvestussilmus, mis teeb midagi teatud arv kordi. Esimene arv määrab muutujale esimese silmuse väärtuse. Iga silmusega arv suureneb, kuni jõuab teise arvuni.

for $x = 1 to 10 {
  print $x * 7
  forward 15
}

Igal looksulgudes oleva koodi täitmisel antakse $x väärtus ühe võrra suuremana, kuni $x võrdub lõpuks 10. Looksulgudes olev kood antud juhul kirjutab tehte '$x korda 7' tulemuse. Kui programm on töö lõpetanud, on tulemuseks lõuendil ilutsev numbri 7 korrutustabelike.

Silmuse sammu vaikesuurus on 1, aga kasutada võib mis tahes väärtust.

for muutuja = arv to arv step arv { ... }

Silmusest väljumine

break
break

Katkestab otsekohe aktiivse silmuse ning annab järje üle vahetult silmuse järel seisvale lausele.

Programmi täitmise peatamine

exit
exit

Lõpetab programmi täitmise.

Eelduse kontrollimine käitusajal

assert
assert tõeväärtus

Seda saab kasutada programmi või sisendi korrektsuse kontrollimiseks.

$in = ask "Mis on sinu sünniaasta?"
# aasta peab olema positiivne
assert $in 
> 0