Manpages

______________________________________________________________________________

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。 在 一 般 的 情 况 下 , 这 里 可 以 有 多 于 一 个 的 值 列 表 (例 如 , list1list2), 并 且 每 个 值 列 表 可 以 与 一 个 循 环 变 量 的 列 表 相 关 联 。 (例 如 , varlist1varlist2)。 在 循 环 的 每 次 重 复 期 间 每 个 varlist 中 的 变 量 被 赋 与 相 应 的 list 中 的 连 续 的 值 。 在 每 个 list 中 的 值 按 从 最 先 到 最 后 的 次 序 被 使 用 , 并 且 每 个 值 被 准 确 的 使 用 一 次 。 循 环 重 复 的 总 数 足 够 的 大 来 用 光 所 有 列 表 的 所 有 的 值 。 如 果 一 个 值 的 列 表 不 包 含 足 够 元 素 , 供 给 每 次 重 复 中 的 每 个 循 环 变 量 , 则 给 遗 漏 的 元 素 使 用 空 值 。

breakcontinue 语 句 可 以 在 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