about_For

簡短描述

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

詳細描述

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

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

語法

以下顯示 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 部分For,而不是變更 語句清單部分For的變數值,如下所示。

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

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

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

在下列範例中,迴圈會在 For 的值 $i 小於或等於 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}

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

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

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

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

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

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

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

另請參閱