プログラミング時、 foreachコマンドはループ変数が1つ以上のリストの値をとるループを実装します。 最も単純なケースでは、1つのループ変数、 varname 、および1つのリスト、 varnameに割り当てる値のリストがあります 。 body引数はTclスクリプトです。 リストの各要素(最初から最後まで)は、要素の抽出にlindexコマンドが使用されたかのように、 foreachは要素の内容をvarnameに割り当て、Tclインタプリタを呼び出してbodyを実行します 。
シノプシス
foreach varnameリスト本文
foreach varlist1 list1 ? varlist2 list2 ... ? 体
討論
一般的なケースでは、複数の値リスト( list1やlist2など )があり、各値リストはループ変数のリスト( varlist1やvarlist2など )に関連付けることができます。 ループが繰り返されるたびに、各変数リストの変数には、対応するリストから連続した値が割り当てられます。 各リストの値は、最初から最後まで順番に使用され、各値は1回だけ使用されます。 ループ反復の総数は、すべての値リストのすべての値を使い切るのに十分な大きさです。 値リストに各反復のループ変数ごとに十分な要素が含まれていない場合は、空の値が欠損要素に使用されます。
break文とcontinue文は、 bodyの中で呼び出すことができます。これは、 forコマンドと同じ効果です。 f oreachは空の文字列を返します。
例
次のループでは、ループ変数としてiとjを使用して、単一のリストの要素のペアを反復処理します。
set x {} foreach {ij} {abcdef} {lappend x $ j $ i}#xの値は "badcfe"です。#ループの繰り返しが3回あります。次のループではiとjを使って2つのリストを並列に繰り返します。
xの値は "adbecf {} g"です。ループの反復は4回あります。次の例では、2つの形式が組み合わされています。
xの値は "adebfgc {} {}"です。#ループの繰り返しが3回あります。ノート
いくつかの関連するコマンドはforeachと共に以下のものを扱います:
- for(n)
- 一方、(n)
- ブレーク(n)
- 続行する(n)
Linuxディストリビューションとカーネルリリースレベルは異なるため、 manコマンド( %man )を使用して、特定のコンピュータでコマンドが具体的にどのように使用されているかを確認してください。