foreach -
在一個或多個列表的所有元素上重複
foreach varname list body
foreach varlist1 list1 ?
varlist2 list2 ...?
body
foreach
命令實現一個迴圈,在這裡迴圈變數從一個或多個列表接受值。在最簡單的情況下,這裡有一個迴圈變數
varname ,和一個列表
list,它是要賦給
varname
的值的一個列表。
body
引數是一個 Tcl
指令碼。對於
list
的每個元素(按從最先到最後的次序),
foreach
把這個元素的內容賦給
varname,如同使用
lindex
命令提取元素一樣,接著呼叫
Tcl 直譯器來執行
body。
在一般的情況下,這裡可以有多於一個的值列表(例如,
list1和
list2),並且每個值列表可以與一個迴圈變數的列表相關聯。(例如,
varlist1 和
varlist2)。
在迴圈的每次重複期間每個
varlist
中的變數被賦與相應的
list
中的連續的值。在每
個
list
中的值按從最先到最後的次序被使用,並且每個值被準確的使用一次。迴圈重複的總數足夠的大來用光所有列表的所有的值。如果一個值的列表不包含足夠元素,供給每次重複中的每個迴圈變數,則給遺漏的元素使用空值。
break 和
continue 語句可以在
body 中呼叫,與在
for
命令中有相同的效果。
Foreach 返回一個空串。
下面的迴圈使用 i 和 j
作為迴圈變數在一個單一的列表的一對元素上重複。
set x {}
foreach {i j} {a b c d e f} {
lappend x $j $i
}
# The value of x is "b a d c f e"
# There are 3 iterations of the loop.
下一個迴圈使用 i 和 j
在兩個並行的列表上重複。
set x {}
foreach i {a b c} j {d e f g} {
lappend x $i $j
}
# The value of x is "a d b e c f {} g"
# There are 4 iterations of the loop.
在下面例子中組合了兩種形式。
set x {}
foreach i {a b c} {j k} {d e f g} {
lappend x $i $j $k
}
# The value of x is "a d e b f g c {} {}"
# There are 3 iterations of the loop.
for(n),
while(n),
break(n),
continue(n)
foreach, iteration, list, looping
寒蟬退士
2001/08/05
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh