for

ReferenceTOPKeywords

コマンド名

for - "For" ループ

構文

for start test next body 

解説

for はループコマンドであり、C言語の for ステートメントと構造上似ています。start next body 引数はTclコマンドの文字列でなければならなく、testは式文字列でなければなりません。forコマンドは最初にTclインタープリタを呼出してstart を実行します。そして、testを式として繰り返し評価します。結果が0でなければ、Tclインタープリタを呼出してbodyを実行し、それからTclインタープリタでnextを実行します。そしてループを繰り返します。testが0と評価されるとき、このコマンドは終了します。 continueコマンドがbodyの中に呼び出されると、body の現在の実行の残っているコマンドは全てスキップされ、処理はTclインタープリタを呼び出してnext を実行し、testを評価することによってループを継続します。 break コマンドがbodynext の中に呼び出されると、forコマンドは直ちに制御を返します。 break continue の操作は C 言語で相当するステートメントと似ています。for は空文字列を返します。

注意:
testは常に中括弧で囲まなければなりません。そうでないと、 for コマンドが実行をはじめる前に変数置換は行われてしまいます。それはループ本体によって行われる変数の更新が式の中で反映されなくなることを意味します。これは無限ループという結果につながる恐れがあります。 testが中括弧で括られていれば、変数置換は式が評価されるまで遅延されます(各ループの繰り返しの前)、このため変数の更新は反映される様になります。例えば、以下のスクリプトを$x<10の周りの中括弧を有りと無しで試して下さい。 

for {set x 0} {$x<10} {incr x} {
    puts "x is $x"
}

参照

break, continue, foreach, while

キーワード

for, iterationlooping


Copyright © 1993 The Regents of the University of California. Copyright © 1994-1997 Sun Microsystems, Inc. Copyright © 1995-1997 Roger E. Critchlow Jr.