Når du programmerer,for hver kommandoen implementerer en sløyfe der loop-variablene antar verdiene fra en eller flere lister. I det enkleste tilfellet er det en loop variabel, VARNAME , og en liste, liste , det er en liste over verdier som skal tilordnes til VARNAME . De kropp argumentet er et Tcl-skript. For hvert element av liste (i rekkefølge fra første til siste)for hver Tilordner innholdet til elementet til VARNAME som omLindexkommandoen hadde blitt brukt til å trekke ut elementet, og kaller så Tcl-tolken til å utføre kropp .
Synopsis
for hver varname liste kropp
for hver varlist1 liste1 ? varlist2 list2 … ? kropp
Diskusjon
I et generelt tilfelle kan det være mer enn en verdiviste (f.eks. list1 og liste2 ), og hver verdi liste kan knyttes til en liste over loop variabler (for eksempel, varlist1 og varlist2 ). Under hver iterasjon av løkken, variablene av hver varlist tilordnes påfølgende verdier fra tilsvarende liste . Verdier i hver liste brukes i rekkefølgen fra første til siste, og hver verdi brukes nøyaktig en gang. Det totale antall loop iterasjoner er stort nok til å bruke opp alle verdiene fra alle verdilistene. Hvis en verdiviste ikke inneholder nok elementer for hver av løkkevariablene i hver iterasjon, brukes tomme verdier for de manglende elementene.
Degå i stykker ogFortsette uttalelser kan påberopes innvendig kropp , med samme effekt som i til kommando. Foreach returnerer en tom streng.
eksempler
Følgende sløyfe bruker Jeg og j som loopvariabler for å iterere over par av elementer i en enkelt liste.
sett x {} foreach {i j} {a b c d e f} {lappend x $ j $ i} # Verdien av x er "b a d c f e" # Det er 3 iterasjoner av løkken.
Neste sløyfe bruker Jeg og j å iterere over to lister parallelt.
sett x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # Verdien av x er "a d b e c f {} g" # Det er 4 iterasjoner av løkken.
De to formene er kombinert i følgende eksempel.
sett x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # Verdien av x er "a d e b f g c {} {}" # Det er 3 iterasjoner av løkken.
Merknader
Flere relaterte kommandoer arbeider medfor hver gjelder også:
- for (n)
- mens (n)
- break (n)
- fortsette (n)
Fordi Linux distribusjons- og kjernefrigivelsesnivåer varierer, bruker du Mann kommando ( % Mann ) for å se hvordan en kommando er spesifikt brukt på din bestemte datamaskin.




