while - Execute script repeatedly as long as a condition is met
The while command evaluates test as an expression (in the same way
that expr evaluates its argument). The value of the expression must a
proper boolean value; if it is a true value then body is executed by
passing it to the Tcl interpreter. Once body has been executed then
test is evaluated again, and the process repeats until eventually
test evaluates to a false boolean value. Continue commands may
be executed inside body to terminate the current iteration of the loop,
and break commands may be executed inside body to cause
immediate termination of the while command. The while command
always returns an empty string.
Note: test should almost always be enclosed in braces. If
not, variable substitutions will be made before the while command
starts executing, which means that variable changes made by the loop body
will not be considered in the expression. This is likely to result in an
infinite loop. If test is enclosed in braces, variable substitutions
are delayed until the expression is evaluated (before each loop iteration),
so changes in the variables will be visible. For an example, try the
following script with and without the braces around $x<10:
set x 0
while {$x<10} {
puts "x is $x"
incr x
}
Read lines from a channel until we get to the end of the stream, and print them
out with a line-number prepended:
set lineCount 0
while {[gets $chan line] >= 0} {
puts "[incr lineCount]: $line"
}
break(n), continue(n), for(n), foreach(n)
boolean value, loop, test, while