.
.
名称
while - 重复的执行脚本直到条件不匹配
语法
while test body
描述
while命令执行test,执行的结果是一个布尔数值,如果是真就执行body,body运行完毕后就在此执行test,然后继续循环直到test运行为假为止,Continue命令可以在body中结束当前的循环,break可以退出while循环,while命令返回一个空字符串。
注意:test必须在花括号内,如果不在,变量替换将在while命令执行前发生,就是说在循环体内循环是对变量所作的改动就不起作用,循环将是个死循环。如果test在花括号内,变量替换将被延迟到表达式执行的时候发生,所以变量的变化将是可见的。举个例子,试着不用花括号在$x<10周围运行命令:
set x 0
while {$x<10} {
puts "x is $x"
incr x
}
示例
从I/O通道中读入数据直到数据流的末尾,然后把它们打印出来,每行的前面编上数字:
set lineCount 0
while {[gets $chan line] >= 0} {
puts "[incr lineCount]: $line"
}