Breaking out of a procedure
As with the continue
keyword, break
is not in and of itself a control construct. The break
keyword allows you to terminate the processing of a loop, whenever a specific condition is encountered. I routinely use this as a method of avoiding an endless loop by setting a maximum value to be detected and to break out of the loop.
How to do it…
In the following recipe, we will create a Tcl script, to be called from the command line, that increments the value of x
and without the break
keyword, would create the endless loop as mentioned. Once the upper limit has been reached the loop will break and the output will be an error message.
Create a text file named break.tcl
that contains the following commands:
for {set x 1} {$x > 0} {incr x} { if {$x == 5} { puts "Upper limit reached" break } puts "x = $x" }
Now invoke the script using the following command line:
% tclsh85 break.tcl x = 1 x = 2 x = 3 x = 4 Upper limit reached
How it works…
The action was invoked a total...