Purpose: To discuss the various looping constructs available in Tcl ---- One can do looping via '''for''' ''start test next command'' for {set counter 1} {$counter <= 5} {incr counter} { puts $counter } '''foreach''' ''varList list ?varList list ...? command'' foreach counter {1 2 3 4 5} { puts $counter } # varList example foreach {roman arabic} { I 1 II 2 III 3 IV 4 V 5 VI 6 VII 7 VIII 8 IX 9 X 10 } { puts "The roman numeral version of $arabic is $roman." } # multilist example foreach x {1 2 3 4 5} y {6 7 8 9 10} { puts "${x} x ${y} = [expr {$x*$y}]" } '''while''' ''test command'' set counter 1 while {$counter <= 5} { puts $counter incr counter } '''or, if you have lots of breaking conditions, for example:''' set counter 1 set start [ clock seconds ] while { 1 } { puts $counter if { [ incr counter ] >= 50000 } { break } if { [ expr {[ clock seconds ] - $start} ] >= 5 } { break } }