|
ActiveTcl User Guide |
|
while - Execute script repeatedly as long as a condition is met
while test body
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, continue, for, foreach
boolean value, loop, test, while
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1997 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.