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.