.
.
名称
for - 'For' 循环
语法
for start test next body
描述
for是一个循环命令,与C语言中的for相似。start、next和body变元必须是一个命令字符串,而且test是一个字符表达式,for命令首先调用Tcl解释器运行start,然后重复的执行test表达式,如果结果是非0就调用解释器解释body,然后调用解释器解释next,然后再重复循环,当test执行为0时结束循环。如果continue命令在body中调用,那么将跳过当前循环中剩下的命令,继续进入下一个循环,然后执行test,再循环。如果break命令在body或者next中,那么for命令将立刻返回。break和continue操作和C语言相似,for返回一个空字符串。
注意:test必须总是在花括号内,如果不在花括号内,在for循环开始前会先进行变量替代,那么在for循环内部对变量的修改就不起作用。这就像进入了无限循环,如果test在花括号内,变量置换在表达式执行后才发生,所以变量的变化是可见的,见以下的例子:
示例
打印整数0至10:
for {set x 0} {$x<10} {incr x} {
puts "x is $x"
}
无论是死循环还是不循环都是因为表达式事实上是常量或者产生一个错误,实际的行为取决于在for之前是否存在变量x和它的值是小于、大于或等于10,这是因为这个操作在for命令执行前取代。
for {set x 0} $x<10 {incr x} {
puts "x is $x"
}
打印1至1024种2的n次方数:
for {set x 1} {$x<=1024} {set x [expr {$x * 2}]} {
puts "x is $x"
}