foreach(3tcl)

NAME
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。

在一般的情況下，這裡可以有多於一個的值列表(例如，list1和 list2)，並且每個值列表可以與一個迴圈變數的列表相關聯。(例如，varlist1 和 varlist2)。 在迴圈的每次重複期間每個 varlist 中的變數被賦與相應的list 中的連續的值。在每 個list 中的值按從最先到最後的次序被使用，並且每個值被準確的使用一次。迴圈重複的總數足夠的大來用光所有列表的所有的值。如果一個值的列表不包含足夠元素，供給每次重複中的每個迴圈變數，則給遺漏的元素使用空值。

break 和 continue 語句可以在 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