about_For
簡単な説明
条件付きテストに基づいてステートメントを実行するために使用できる言語コマンドについて説明します。
詳細な説明
For
ステートメント (ループとも呼ばれますFor
) は、指定された条件が評価される間にコマンド ブロックでコマンドを実行するループを作成するために使用できる言語コンストラクトです$true
。
ループの For
一般的な用途は、値の配列を反復処理し、これらの値のサブセットを操作することです。 ほとんどの場合、配列内のすべての値を反復処理する場合は、ステートメントの使用を Foreach
検討してください。
構文
ステートメントの構文を次に For
示します。
for (<Init>; <Condition>; <Repeat>)
{
<Statement list>
}
Init プレースホルダーは、ループが開始される前に実行される 1 つ以上のコマンドを表します。 通常、ステートメントの Init 部分を使用して、開始値を使用して変数を作成および初期化します。
この変数は、ステートメントの次の部分でテストされる条件の For
基礎になります。
Condition プレースホルダーは、ステートメントの中でFor
、ブール値または$false
ブール$true
値に解決される部分を表します。 PowerShell は、ループが実行されるたびに条件を For
評価します。 ステートメントが指定されている場合は $true
、コマンド ブロック内のコマンドが実行され、ステートメントが再び評価されます。 条件がまだ残っている$true
場合は、ステートメントリストのコマンドが再度実行されます。
ループは条件になるまで繰り返されます $false
。
Repeat プレースホルダーは 、ループが繰り 返されるたびに実行される 1 つ以上のコマンドをコンマで区切って表します。 通常、これは、ステートメントの Condition 部分内でテストされる変数を変更するために使用されます。
ステートメント リスト プレースホルダーは、ループが入力または繰り返されるたびに実行される 1 つ以上のコマンドのセットを表します。 ステートメント リストの内容は中かっこで囲まれています。
複数の操作のサポート
Init ステートメントの複数の割り当て操作では、次の構文がサポートされています。
# Comma separated assignment expressions enclosed in parentheses.
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{
"`$i:$i"
"`$j:$j"
}
# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $i++)
{
"`$i:$i"
"`$j:$j"
}
Repeat ステートメントの複数の割り当て操作では、次の構文がサポートされています。
# Comma separated assignment expressions.
for (($i = 0), ($j = 0); $i -lt 10; $i++, $j++)
{
"`$i:$i"
"`$j:$j"
}
# Comma separated assignment expressions enclosed in parentheses.
for (($i = 0), ($j = 0); $i -lt 10; ($i++), ($j++))
{
"`$i:$i"
"`$j:$j"
}
# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $($i++;$j++))
{
"`$i:$i"
"`$j:$j"
}
Note
事前インクリメントまたは事後インクリメント以外の操作は、すべての構文で機能しない場合があります。
複数 の条件 の場合は、次の例に示すように論理演算子を使用します。
for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
"`$i:$i"
"`$j:$j"
}
詳細については、「about_Logical_Operators」を参照してください。
例
少なくとも、ステートメントには、For
ステートメントの Init、Condition、Repeat の一部を囲むかっこと、ステートメントのステートメント リスト部分の中かっこで囲まれたコマンドが必要です。
今後の例では、ステートメントの外側に意図的にコードが For
表示されることに注意してください。 後の例では、コードがステートメントに For
統合されています。
たとえば、次 For
のステートメントは、Ctrl キーを押しながら C キーを $i
押してコマンドを手動で中断するまで、変数の値を継続的に表示します。
$i = 1
for (;;)
{
Write-Host $i
}
次の例に示すように、ループが実行されるたびに値 $i
が 1 ずつインクリメントされるように、ステートメント リストにコマンドを追加できます。
for (;;)
{
$i++; Write-Host $i
}
Ctrl キーを押しながら C キーを押してコマンドを中断するまで、このステートメントは、ループが実行されるたびに 1 ずつインクリメントされるため、変数の $i
値を継続的に表示します。
ステートメントのステートメント リスト部分For
の変数の値を変更する代わりに、次のようにステートメントの Repeat 部分をFor
使用できます。
$i=1
for (;;$i++)
{
Write-Host $i
}
このステートメントは、Ctrl キーを押しながら C キーを押してコマンドから抜け出すまで、無期限に繰り返されます。
条件を使用してループをFor
終了できます。 条件は、ステートメントの Condition 部分For
を使用して配置できます。 条件が For
次の値に評価されると、ループは終了します $false
。
次の例では、値$i
が For
10 以下の間にループが実行されます。
$i=1
for(;$i -le 10;$i++)
{
Write-Host $i
}
ステートメントの外部For
で変数を作成して初期化する代わりに、ステートメントの Init 部分をFor
使用してループ内でこのタスクをFor
実行できます。
for($i=1; $i -le 10; $i++){Write-Host $i}
セミコロンの代わりに復帰を使用して、ステートメントの Init、Condition、Repeatの部分をFor
区切ることができます。 次の例は、この代替構文を For
使用する例を示しています。
for ($i = 0
$i -lt 10
$i++){
$i
}
この別の形式のステートメントは For
、PowerShell スクリプト ファイルと PowerShell コマンド プロンプトで機能します。 ただし、コマンド プロンプトで対話型コマンドを For
入力する場合は、セミコロンでステートメント構文を使用する方が簡単です。
ループは For
、パターンを Foreach
使用して配列またはコレクション内の値をインクリメントできるため、ループよりも柔軟性が高くなります。 次の例では、ステートメントの $i
Repeat 部分For
で変数が 2 ずつインクリメントされます。
for ($i = 0; $i -le 20; $i += 2)
{
Write-Host $i
}
ループは For
、次の例のように 1 行に記述することもできます。
for ($i = 0; $i -lt 10; $i++) { Write-Host $i }
関連項目
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示