的foreach命令实现了一个循环变量假设这些值来自一个或多个列表。
剧情简介
该命令有以下两种形式:
Foreach变量名列表主体
varlist1 list1 ?varlist2 list2…身体
在最简单的情况下,有一个循环变量,varname,一个列表,列表,用于标识要赋值的值varname.的身体参数是一个Tcl脚本。对于的每个元素列表(按从前到后的顺序)foreach将元素的内容赋给varname就好像lindex命令已用于提取元素,然后调用Tcl解释器执行身体.
使用笔记
在一般情况下,可以有多个值列表(例如,list1而且用于),并且每个值列表可以与一个循环变量列表相关联(例如,varlist1而且varlist2).在循环的每次迭代过程中,每个的变量varlist是否分配了对应的连续值列表.每个的值列表是按照从第一个到最后一个的顺序使用的,并且每个值只使用一次。
循环迭代的总数足够大,可以使用所有值列表中的所有值。如果值列表在每次迭代中没有为每个循环变量包含足够的元素,则对缺少的元素使用空值。
的打破而且继续语句可以在内部调用身体,效果与为命令。的foreach返回一个空字符串。
例子
下面的循环使用我而且j作为循环变量,遍历单个列表的元素对。
集合x {}
Foreach {i j} {a b c d e f} {
lapend x $j $i
}
# x的值是"b a d c f e"
循环有3次迭代。
下一个循环使用我而且j并行遍历两个列表。
集合x {}
Foreach I {a b c} j {d e f g} {
lapend x $i $j
}
# x的值是"a d b e c f {} g"
循环有4次迭代。
下面的示例将结合这两种表单。
集合x {}
Foreach I {a b c} {j k} {d e f g} {
lapend x $i $j $k
}
# x的值是"a d e b f g c {} {}"
循环有3次迭代。
使用的几个相关命令foreach包括为,而,打破,继续.
谢谢你告诉我们!
告诉我们为什么!