迭代while循环结果列表在tcl中

时间:2015-01-03 11:31:35

标签: loops while-loop tcl

如何将循环结果迭代到Tcl中的列表?

set i 0
while { $i < ($num +1) } {
    set list $i
    incr i
}

使用上面的while循环创建一个列表。

2 个答案:

答案 0 :(得分:1)

你几乎得到了它。你只需要在循环中使用lappendfor对于这类事情而言比while更惯用。请注意,放置换行符的位置很重要;你不能将它们放在while条件和循环体之间(不加反斜杠,这很丑陋)。

for {set i 0} {$i < ($num + 1)} {incr i} {
    lappend list $i
}

您可以编写以下等效代码,但上述内容更清晰:

set i 0
while {$i < ($num + 1)} {
    lappend list $i
    incr i
}

最后,我实际上使用了这个:

for {set i 0} {$i <= $num} {incr i} {
    lappend list $i
}

它强调$num是更明确的限制,<=将其标记为包含限制。我也会在许多其他语言中也这样做。

答案 1 :(得分:0)

$ i在编写代码时采用始终为数字的值。然后将该值分配给列表。然后应该打印或存储列表...确切地说您要对列表执行的操作并不清楚,因为在编写代码时,它只是在循环的每次迭代中被覆盖。

您的循环条件也可能存在问题。除非您正在查找由i的增量生成的数字列表,否则代码应为:

set  i 0
while { i < ($num + 1)} {
    set list $i
    [here would be where you print/store list]
    incr i
}

这有帮助吗?