tcl tk參考 控制結構foreach

2021-06-16 00:39:33 字數 1446 閱讀 3478

foreach - 反覆迴圈操作乙個或多個列表的每個元素foreachvarname list body

foreachvarlist1 list1 ?varlist2 list2 ...? body

foreach命令執行乙個迴圈,迴圈的變數是乙個或多個列表的元素。最簡單的情況下是乙個迴圈變數

varname和乙個列表

list,

list中的值一次分配給

varname。

body變元是乙個tcl指令碼,對於每個

list中的元素(順序是由第乙個到最後乙個),foreach分配元素的內容給

varname,然後呼叫tcl直譯器去執行

body。

一般情況下可以有多個列表,並且每個列表可以是迴圈的變數,在每次迴圈中每個varlist變數被分配給相應的list。foreach將一直迴圈執行所有列表中的值,如果在迴圈中其中乙個列表的元素全部使用了,那麼在後面的迴圈中這個列表的元素就用空字串來代替。

breakcontinue可以在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...