Tuesday, June 12, 2012

TCL - Looping 101 - While loop


Tcl includes two commands for looping, the while and for commands. Like the if statement, they evaluate their test the same way that the expr does. In this lesson we discuss the while command, and in the next lesson, the forcommand. In most circumstances where one of these commands can be used, the other can be used as well.
  • while test body
The while command evaluates test as an expression. If test is true, the code in body is executed. After the code inbody has been executed, testis evaluated again.
continue statement within body will stop the execution of the code and the test will be re-evaluated. A break withinbody will break out of the while loop, and execution will continue with the next line of code after body
In Tcl everything is a command, and everything goes through the same substitution phase. For this reason, thetest must be placed within braces. If test is placed within quotes, the substitution phase will replace any variables with their current value, and will pass that test to the while command to evaluate, and since the test has only numbers, it will always evaluate the same, quite probably leading to an endless loop!
Look at the two loops in the example. If it weren't for the break command in the second loop, it would loop forever.

Example

set x 1
This is a normal way to write a Tcl while loop.
# while {$x < 5} { puts "x is $x"
ted first loop with X equ
set x [expr {$x + 1}] } puts "ex ial to $x\n"
mple shows the difference between ".." and {...} # How many ti
# The next ex ames does the following loop run? Why does it not # print on each pass?
if "
set x 0 while "$x < 5" { set x [expr {$x + 1}] if {$x > 7} break $x > 3" continue puts "x is $x" }
$x"
puts "exited second loop with X equal t o

No comments:

Post a Comment

Popular Posts