tcl/tk参考——控制结构foreach

名称

foreach - 反复循环操作一个或多个列表的每个元素

语法

foreach varname list body

foreach varlist1 list1 ?varlist2 list2 ...? body

描述

foreach命令执行一个循环,循环的变量是一个或多个列表的元素。最简单的情况下是一个循环变量 varname和一个列表 listlist中的值一次分配给 varnamebody变元是一个Tcl脚本,对于每个 list中的元素(顺序是由第一个到最后一个), foreach分配元素的内容给 varname,然后调用Tcl解释器去执行 body

一般情况下可以有多个列表,并且每个列表可以是循环的变量,在每次循环中每个varlist变量被分配给相应的listforeach将一直循环执行所有列表中的值,如果在循环中其中一个列表的元素全部使用了,那么在后面的循环中这个列表的元素就用空字符串来代替。

breakcontinue可以在body中调用,用法和for命令相同,并且返回一个空字符串。

示例

这个循环打印每一个列表中的数值值和数值的平方、立方
set values {1 3 5 7 2 4 6 8}   ;# Odd numbers first, for fun!
puts "Value/tSquare/tCube"    ;# Neat-looking header
foreach x $values {  ;# Now loop and print...
    puts " $x/t [expr {$x**2}]/t [expr {$x**3}]"
}

下面的循环使用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.
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值