foreach - 反覆迴圈操作乙個或多個列表的每個元素foreachvarname list body
foreachvarlist1 list1 ?varlist2 list2 ...? body
foreach命令執行乙個迴圈,迴圈的變數是乙個或多個列表的元素。最簡單的情況下是乙個迴圈變數
varname和乙個列表
list,
list中的值一次分配給
varname。
body變元是乙個tcl指令碼,對於每個
list中的元素(順序是由第乙個到最後乙個),foreach分配元素的內容給
varname,然後呼叫tcl直譯器去執行
body。
一般情況下可以有多個列表,並且每個列表可以是迴圈的變數,在每次迴圈中每個varlist變數被分配給相應的list。foreach將一直迴圈執行所有列表中的值,如果在迴圈中其中乙個列表的元素全部使用了,那麼在後面的迴圈中這個列表的元素就用空字串來代替。
break和continue可以在body中呼叫,用法和for命令相同,並且返回乙個空字串。
這個迴圈列印每乙個列表中的數值值和數值的平方、立方
set values ;# odd numbers first, for fun!
puts "value/tsquare/tcube" ;# neat-looking header
foreachx $values ]/t [expr ]"
}下面的迴圈使用i和j作為迴圈變數操作列表中每一對元素:
set x {}
foreach
# the value of x is "b a d c f e"
# there are 3 iterations of the loop.下面的迴圈使用i和j作為迴圈變數同時操作兩個列表中的元素:
set x {}
foreachi j
# the value of x is "a d b e c f {} g"
# there are 4 iterations of the loop.下面兩個列表合併起來:
set x {}
foreachi
# the value of x is "a d e b f g c {} {}"
# there are 3 iterations of the loop.
tcl tk參考 控制結構catch
catch 執行指令碼並捕獲錯誤 catchscript resultvarname?optionsvarname?catch命令用來防止出現錯誤而導致指令碼執行終止,catch命令可以呼叫tcl直譯器去執行指令碼,並且能夠正常返回。如果指令碼產生乙個錯誤,catch將返回乙個非0的整數,如果沒有捕...
tcl tk參考 控制結構update
update 處理掛起的事件和空閒 update?idletasks?這個命令用來給應用程式 更新 進入事件迴圈直到所有掛起的事件和空閒 都執行完畢。如果指定idletasks,就不處理新的事件或錯誤,只有空閒 被呼叫,這就導致操作被延遲了,就像顯示更新和視窗設計,會被立刻執行。當應用程式的狀態發生...
tcl tk參考 控制結構return
return 從程序中返回或者返回乙個值return?result?return?codecode?result?return?option value result?最簡單的用法,return命令在程式體內直接使用而不帶任何可選項,這樣將會使過程立刻返回。如果有 result變元,過程就返回 re...