共用方式為


about_For

簡短描述

描述您可以用來根據條件測試來執行語句的語言命令。

完整描述

語句 For (也稱為 For 迴圈) 是一種語言建構,可用來建立在命令區塊中執行命令的迴圈,而指定的條件評估為 $true

迴圈的 For 一般用法是逐一查看值陣列,並在這些值的子集上操作。 在大部分情況下,如果您想要逐一查看數位中的所有值,請考慮使用 Foreach 語句。

Syntax

以下顯示 For 語句語法。

for (<Init>; <Condition>; <Repeat>)
{
    <Statement list>
}

Init 佔位元代表在循環開始之前執行的一或多個命令。 您通常會使用 語句的 Init 部分來建立和初始化具有起始值的變數。

接著,此變數將會是語句下一個部分中 For 要測試之條件的基礎。

Condition 佔位符代表解析為 $true$false布爾值的 語句部分For。 每次執行迴圈時 For ,PowerShell 都會評估條件。 如果語句為 $true,則命令區塊中的命令會執行,並再次評估語句。 如果條件仍然 $true為 , 語句清單中的 命令會再次執行。 迴圈會重複,直到條件變成 $false為止。

Repeat 佔位元代表一或多個命令,以逗號分隔,每次迴圈重複時都會執行。 一般而言,這會用來修改在語句的 Condition 部分內測試的變數。

語句清單佔位元代表每次輸入或重複迴圈時執行的一或多個命令集合。 語句清單的內容會以大括弧括住。

支援多個作業

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"
}

注意

前置或後置遞增以外的作業可能無法搭配所有語法使用。

對於多個 條件 ,請使用邏輯運算符,如下列範例所示。

for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
    "`$i:$i"
    "`$j:$j"
}

如需詳細資訊,請參閱 about_Logical_Operators

範例

語句至少 For 需要語句的括弧括住 InitConditionRepeat 部分,以及語句 清單中 括弧括住的命令。

請注意,即將推出的範例會刻意在語句外部 For 顯示程序代碼。 在稍後的範例中,程式代碼會整合到 語句中 For

例如,下列 For 語句會持續顯示變數的值 $i ,直到您按 CTRL+C 手動中斷命令為止。

$i = 1
for (;;)
{
    Write-Host $i
}

您可以將其他命令新增至語句清單,以便在每次執行循環時將的值 $i 遞增 1,如下列範例所示。

for (;;)
{
    $i++; Write-Host $i
}

在按下 CTRL+C 來中斷命令之前,此語句會持續顯示變數的值 $i ,因為每次執行循環時會遞增 1。

您可以改用 語句的 Repeat 部分ForFor,而不是變更 語句清單中變數的值,如下所示。

$i=1
for (;;$i++)
{
    Write-Host $i
}

此語句仍會無限期地重複,直到您按下 CTRL+C 來中斷命令為止。

您可以使用條件終止For迴圈。 您可以使用 語句的 ForCondition 部分來放置條件。 當 For 條件評估為 $false時,迴圈就會終止。

在下列範例中,迴圈會在 For 的值 $i 小於或等於 10 時執行。

$i=1
for(;$i -le 10;$i++)
{
    Write-Host $i
}

您可以使用 語句的 ForForInit 部分,在循環內For執行這項工作,而不是在 語句外部建立和初始化變數。

for($i=1; $i -le 10; $i++){Write-Host $i}

您可以使用歸位字元,而不是分號來分隔語句的 ForInitConditionRepeat 部分。 下列範例顯示 For 使用此替代語法的 。

for ($i = 0
  $i -lt 10
  $i++){
  $i
}

這個語句的 For 替代形式可在PowerShell腳本檔案和PowerShell命令提示字元中運作。 不過,當您在命令提示字元中輸入互動式命令時,使用 For 語句語法與分號比較容易。

For迴圈比Foreach迴圈更有彈性,因為它可讓您使用模式遞增數位或集合中的值。 在下列範例中$i,變數會在語句的 ForRepeat 部分遞增 2。

for ($i = 0; $i -le 20; $i += 2)
{
    Write-Host $i
}

For迴圈也可以寫入一行,如下列範例所示。

for ($i = 0; $i -lt 10; $i++) { Write-Host $i }

另請參閱