4.7.7. Break- ja continue-komennot

Silmukoiden kierroksia pystyy ohittamaan komennolla continue ja koko silmukan suorituksen voi pysäyttää komennolla break. break-komennolla voi pysäyttää minkä tahansa silmukan (for, while, foreach) suorituksen. Jos silmukan komentojen joukossa suoritetaan break-komento, ei muita komentoja joukosta enää suoriteta ja ohjelman suoritus jatkuu silmukan jälkeiseltä riviltä. Continue-komennolla voi taas ohittaa kierroksen, jolloin loput joukon komennot jätetään suorittamatta ja hypätään suorittamaan seuraavaa vuorossa olevaa kierrosta.  

Esimerkissä

set a {eka toka sotku kolkki}

set b ""

foreach i $a {

if { $i == "sotku" } { continue }

set b [linsert $b 0 $i]

}

set b

=> kolkki toka eka

sijoitetaan listaan b listasta a arvoja käänteisessä järjestyksessä siten, että muuttujan i arvon ollessa sotku, ei arvoa sijoiteta listaan b. Seuraavassa esimerkissä taas arvojen sijoittaminen listaan b lopetetaan kokonaan, jos muuttujan i arvoksi tule e sotku.

set b ""

foreach i $a {

if { $i == "sotku" } { break }

set b [linsert $b 0 $i]

}

set b

=>toka eka

Eri kontrollirakenteita voi vapaasti laittaa sisäkkäin. Jos käytetään silmukan sisällä toista silmukkaa, vaikuttavat break- ja continue-ko mennot vain siihen silmukkaan, jossa ne suoritetaa. Tällöin esimerkiksi break-komento sisemmässä silmukassa katkaisee vain sisemmän silmukan suorituksen, jolloin ohjelman suoritus jatkuu ulommassa silmu kassa.


previous gif next gif
Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.