tcl/tk參考——控制結構foreach
阿新 • • 發佈:2018-12-30
名稱
foreach - 反覆迴圈操作一個或多個列表的每個元素語法
foreach varname list body
foreach varlist1 list1 ?varlist2 list2 ...? body
描述
foreach命令執行一個迴圈,迴圈的變數是一個或多個列表的元素。最簡單的情況下是一個迴圈變數varname和一個列表list,list中的值一次分配給varname。body變元是一個Tcl指令碼,對於每個list中的元素(順序是由第一個到最後一個),foreach分配元素的內容給varname,然後呼叫Tcl直譯器去執行body。一般情況下可以有多個列表,並且每個列表可以是迴圈的變數,在每次迴圈中每個varlist
break和continue可以在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.