Joskus voidaan haluta suorittaa jonkin muuttujan arvosta riippuen eri komentoja. Tämän voi tehdä normaalisti pelkällä if-komennolla ja elseif-osioil la. Sen voi tehdä myös käyttäen yksinkertaisenpaa rakennetta, switch-komentoa. Sille annetaan parametreina muuttuja ja kaarisulkeissa osio, jossa on pareina arvo ja sitä vastaava komentojen joukko. Jos joku arvoista vastaa muuttujan arvoa, suoritetaan arvon jälkeisissä kaarisulkeissa olevat komennot. Seuraavassa esimerkissä esiintyvä incr-komento lisää parametrina annettuun muuttujaan toisena par ametrina annetun luvun (esimerkiksi incr laskuri -1 vähentää laskuri-muuttujan arvoa yhdellä).
set laskuri 0
set x "b"
switch $x {
a { incr laskuri 1}
b { incr laskuri 2}
c { incr laskuri 3}
default {incr laskuri 100}
}
set laskuri
=> 2
Esimerkissä lisätään muuttujan laskuri arvoa kahdella, koska muuttujan x arvo on b. Vaihtoehtojen viimeisenä kohtana ole va default ei ole pakollinen, mutta jos se on laitettu, suoritetaan sen jälkeiset komennot, jos mikään muu kohta ei vastannut muuttujan x arvoa.
Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.