編程時 , foreach命令實現了一個循環,其中循環變量呈現來自一個或多個列表的值。 在最簡單的情況下,有一個循環變量varname和一個list list ,它是要分配給varname的值列表。 body參數是一個Tcl腳本。 對於列表中的每個元素(從第一個到最後一個), foreach將元素的內容賦值給varname ,就好像lindex命令已經用於提取元素一樣,然後調用Tcl解釋器來執行主體 。
概要
foreach varname list body
foreach varlist1 list1 ? varlist2 list2 ... ? 身體
討論
在一般情況下,可以有多個值列表(例如, list1和list2 ),並且每個值列表可以與一個循環變量列表(例如, varlist1和varlist2 )相關聯。 在循環的每次迭代期間,每個varlist的變量都會從相應的列表中分配連續的值。 每個列表中的值按從頭到尾的順序使用,每個值只用一次。 循環迭代的總數足夠大,可以用盡所有值列表中的所有值。 如果每個迭代中值列表中的每個循環變量都沒有包含足夠的元素,則會為缺少的元素使用空值。
break和continue語句可以在body中調用,效果與for命令相同。 結果返回一個空字符串。
例子
以下循環使用i和j作為循環變量來遍歷單個列表的元素對。
set x {} foreach {ij} {abcdef} {lappend x $ j $ i}#x的值是“badcfe”#循環有3次迭代。下一個循環使用i和j並行迭代兩個列表。
set x {} foreach i {abc} j {defg} {lappend x $ i $ j}#x的值是“adbecf {} g”#循環有4次迭代。下面的例子將這兩種形式組合在一起。
set x {} foreach i {abc} {jk} {defg} {lappend x $ i $ j $ k}#x的值是“adebfgc {} {}”#循環有3次迭代。筆記
幾個相關的命令與foreach一起工作,包括:
- 為(n)的
- 而(n)的
- 休息(N)
- 繼續(N)