about_For
主題
about_For
簡短描述
描述可用來根據條件測試來執行陳述式的語言命令。
完整描述
For 陳述式 (也稱為 For 迴圈) 是一種可用來建立迴圈的語言建構,在指定的條件評估為
true 時執行命令區塊內的命令。
For 迴圈經常用於反覆處理數值陣列中的數值子集。一般而言,若您想要反覆處理陣列中
所有的值,請考慮改用 Foreach 陳述式。
語法
For 陳述式的語法如下。
for (<初值>; <條件>; <重複方式>)
{<陳述式清單>}
<初值> 預留位置表示在迴圈開始前先執行的單一命令或以逗號分隔的多個命令。陳述
式的 <初值> 部分通常用於建立變數並將其初始化為起始值。
此變數接著將成為 For 陳述式下一部分在條件測試時的依據。
<條件> 預留位置表示 For 陳述式
會解析成 true 或 false 布林值的部分。Windows PowerShell 每次執行 For 迴圈時都會評
估此條件。若其陳述式為 true,則命令區塊中的命令就會執行,然後再次評估其陳述式。
若其條件仍為 true,則陳述式清單中的命令就會再次執行。迴圈會重複進行,直到條件
成為 false 為止。
<重複方式> 預留位置表示每次在重複迴圈時所執行的
單一命令或由逗號所分隔的多個命令。此部分通常用於修改陳述式的 <條件> 部分所測
試的變數。
<陳述式清單> 預留位置表示每次在進入或重複迴圈時所執行的
一組單一或多個命令。陳述式清單的內容置於大括號中。
範例
For 陳述式至少必須有置於括號中的 <初值>、<條件> 和 <重複方式> 部分,以及 <陳述
式清單> 部分中置於大括號中的命令。
請注意,接下來的範例刻意將程式碼寫在 For 陳述式外面。後續的範例會陸續將這些程
式碼整併到 For 陳述式中。
例如,下列 For 陳述式將不斷顯示 $i 變數的值,直到您按 CTRL+C 手動退出命令為止。
$i = 1
for (;;){Write-Host $i}
您可以在陳述式清單中加入其他命令,使每次執行迴圈時,$i 的值都會遞增 1,如以下
範例所示。
for (;;){$i++; Write-Host $i}
在您按下 CTRL+C 退出命令之前,此陳述式會不斷顯示 $i 變數的值,因為每次執行迴
圈時其值都將遞增 1。
您也可以改用 For 陳述式的 <重複方式> 部分變更變數的值,而不在 For 陳述式的陳述
式清單部分中變更變數的值。
$i=1
for (;;$i++){Write-Host $i}
此陳述式仍會不斷重複,直到您按 CTRL+C 退出命令為止。
藉由設定條件 (使用 For 陳述式的 <條件> 部分),即可在條件評估為 false 時結束 For
迴圈。在下列範例中,只要 $i 的值小於或等於 10 就會不斷執行 For 迴圈。
$i=1
for(;$i -le 10;$i++){Write-Host $i}
除了在 For 陳述式外面建立並初始化變數之外,您也可以使用 For 陳述式的 <初值> 部
分,在 For 迴圈內執行相同的工作。
for($i=1; $i -le 10; $i++){Write-Host $i}
您可以使用換行字元代替分號,分隔 For 陳述式的 <初值>、<條件> 和 <重複方式> 部
分。下列範例示範這種替代格式的 For 陳述式語法。
for (<init>
<條件>
<重複方式>){
<陳述式清單>
}
這種替代格式的 For 陳述式可運作於 Windows PowerShell 指令檔及 Windows PowerShell
命令提示字元。然而,在命令提示字元上輸入互動式命令時,使用帶有分號的 For 陳述
式語法會比較方便。
For 迴圈比 Foreach 迴圈更有彈性,能讓您使用模式來遞增陣列或集合中的值。下列範
例使用 For 陳述式的 <重複方式> 部分將 $i 變數遞增 2。
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
請參閱
about_Comparison_Operators
about_Foreach