about_For
トピック
about_For
簡易説明
条件テストに基づいてステートメントを実行するのに使用する言語コマンドについて説明します。
詳細説明
For ステートメント (For ループとも呼ばれます) は、指定した条件が True と評価されている間は
コマンド ブロック内のコマンドを実行するループを作成するための言語構造です。
For ループは、一般に、値の配列を繰り返し処理したり、それらの値のサブセットを操作するために
使用します。配列のすべての値を繰り返し処理する場合、通常は Foreach ステートメントを使用します。
構文
For ステートメントの構文を次に示します。
for (<init>; <condition>; <repeat>)
{<statement list>}
<init> プレースホルダーには、1 つ以上のコマンドをコンマで区切って指定します。これらのコ
マンドはループが開始される前に実行されます。ステートメントの <init> の部分は、変数を作成し
て初期値で初期化するために一般に使用されます。
この変数は、For ステートメントの次の部分でテストされる条件の基礎として使用されます。
For ステートメントの <condition> プレースホルダーは、ブール値 True または False に解決
されます。Windows PowerShell では、For ループが実行されるたびに条件が評価されます。ステートメント
が True の場合は、コマンド ブロックにあるコマンドが実行され、ステートメントが再び評価されます。
条件が引き続き True の場合は、ステートメント リストにあるコマンドが再び実行されます。ループ
は、条件が False になるまで繰り返されます。
<repeat> プレースホルダーには、1 つ以上のコマンドをコンマで区切って指定します。
これらのコマンドは、ループが繰り返されるたびに実行されます。一般に、この部分は、ステート
メントの <condition> の部分でテストされる変数を変更するために使用します。
<statement list> プレースホルダーには、1 つ以上のコマンドのセットを指定します。
これらのコマンドは、ループが実行される (繰り返される) たびに実行されます。ステートメント
リストの内容は中かっこで囲みます。
例
For ステートメントには、少なくとも、ステートメントの <init>、<condition>、および <repeat>
の部分を囲むかっこ、およびステートメントの <statement list> の部分に中かっこで囲んだコマン
ド 1 つを指定する必要があります。
次の例では、For ステートメントの外側のコードを意図的に示していることに注意してください。
後の例では、For ステートメント内にコードを統合しています。
たとえば、次の For ステートメントでは、Ctrl + C キーを押してコマンドを手動で中断するま
で、変数 $i の値が継続的に表示されます。
$i = 1
for (;;){Write-Host $i}
ここで、ループが実行されるたびに $i の値が 1 ずつインクリメントされるように、ステートメ
ント リストにコマンドを追加してみます。次に例を示します。
for (;;){$i++; Write-Host $i}
このステートメントでは、Ctrl + C キーを押してコマンドを中断するまで、ループが実行される
たびに 1 ずつインクリメントした変数 $i の値が継続的に表示されます。
For ステートメントのステートメント リストの部分で変数の値を変更する代わりに、次のように
For ステートメントの <repeat> の部分を使用できます。
$i=1
for (;;$i++){Write-Host $i}
このステートメントは引き続き無限に、つまり Ctrl + C キーを押してコマンドを中断するまで、
繰り返されます。
(ステートメントの <condition> の部分を使用して) 条件を設定すると、条件が False と評価さ
れたときに For ループを終了させることができます。次の例では、$i の値が 10 以下の間、For
ループが実行されます。
$i=1
for(;$i -le 10;$i++){Write-Host $i}
For ステートメントの外で変数を作成したり初期化する代わりに、次のように For ステートメン
トの <init> の部分を使用して、For ループの内側でこの操作を実行できます。
for($i=1; $i -le 10; $i++){Write-Host $i}
For ステートメントの <init>、<condition>、および <repeat> の部分は、セミコロンの代わりにキャリッ
ジ リターンを使用して区切ることができます。次の例は、この代替形式の For ステートメントの
構文を示しています。
for (<init>
<condition>
<repeat>){
<statement list>
}
For ステートメントのこの代替形式は、Windows PowerShell スクリプト ファイルと Windows
PowerShell のコマンド プロンプトで動作します。ただし、コマンド プロンプトで対話型のコマンドを入力する
ときには、セミコロンを使用した For ステートメントの構文を使用する方が簡単です。
For ループでは、パターンを使用して配列またはコレクションの値をインクリメントできるので、
Foreach ループよりも柔軟性があります。次の例では、For ステートメントの <repeat> の部分で
変数 $i が 2 ずつインクリメントされています。
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
関連項目
about_Comparison_Operators
about_Foreach