bionic (3) while.3tcl.gz

Provided by: tcl8.5-doc_8.5.19-4_all bug

NAME

       while - Execute script repeatedly as long as a condition is met

SYNOPSIS

       while test body
________________________________________________________________________________________________________________

DESCRIPTION

       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
              }

EXAMPLE

       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"
              }

SEE ALSO

       break(3tcl), continue(3tcl), for(3tcl), foreach(3tcl)

KEYWORDS

       boolean value, loop, test, while