The while Loop
The while loop behaves like the while loop in C. It takes two arguments: an expression and a script (called the body). When the expression evaluates to non-zero, the
while command executes the body and then reevaluates the expression, continuing the loop until the expression evaluates to 0. The syntax for a while loop is:
while expression body
The following example procedure uses a while loop to search through each element in a list for a pattern. As long as the list size contains more than zero elements ($size > 0), the
procedure continues looping.
proc _dcp_list_find {search_list pattern} { set found_items "" set size [llength $search_list] while { $size > 0 } {
set size [expr $size - 1] set index [lsearch $search_list $pattern] if { $index == -1 } { return $found_items
} lappend found_items [lindex $search_list $index] set search_list [lreplace $search_list $index $index] } }
|