foreach(3tcl) Tcl Built-In Commands foreach(3tcl)

foreach - 在一个或多个列表的所有元素上重复

总览 SYNOPSIS

foreach varname list body
foreach varlist1 list1 ?varlist2 list2 ...? body

描述 DESCRIPTION

foreach 命令实现一个循环,在这里循环变量从一个或多个列表接受值。在最简单的情况下,这里有一个循环变量 varname ,和一个列表 list,它是要赋给 varname 的值的一个列表。body 参数是一个 Tcl 脚本。对于 list 的每个元素(按从最先到最后的次序),foreach 把这个元素的内容赋给 varname,如同使用 lindex 命令提取元素一样,接着调用 Tcl 解释器来执行 body

在一般的情况下,这里可以有多于一个的值列表(例如,list1list2),并且每个值列表可以与一个循环变量的列表相关联。(例如,varlist1varlist2)。 在循环的每次重复期间每个 varlist 中的变量被赋与相应的list 中的连续的值。在每 个list 中的值按从最先到最后的次序被使用,并且每个值被准确的使用一次。循环重复的总数足够的大来用光所有列表的所有的值。如果一个值的列表不包含足够元素,供给每次重复中的每个循环变量,则给遗漏的元素使用空值。

breakcontinue 语句可以在 body 中调用,与在 for 命令中有相同的效果。Foreach 返回一个空串。

范例 EXAMPLES

下面的循环使用 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.

参见 SEE ALSO

for(n), while(n), break(n), continue(n)

关键字 KEYWORDS

foreach, iteration, list, looping

寒蝉退士

2001/08/05

《中国 Linux 论坛 man 手册页翻译计划》:

http://cmpp.linuxforum.net

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh

Tcl