如何将循环结果迭代到Tcl中的列表?
set i 0
while { $i < ($num +1) } {
set list $i
incr i
}
使用上面的while循环创建一个列表。
答案 0 :(得分:1)
你几乎得到了它。你只需要在循环中使用lappend
(for
对于这类事情而言比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
}
这有帮助吗?