about_For

適用於: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

主題

about_For

簡短描述

描述您可以依據條件測試,用以執行陳述式的語言命令。

詳細描述

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

For 迴圈的典型用法是逐一執行陣列中的值,以及在這些值的子集上操作。在大部分情況下,如果您想要逐一查看陣列中的所有值,請考慮使用 Foreach 陳述式。

語法

以下顯示 For 陳述式語法。

          for (<init>; <condition>; <repeat>) 
          {<statement list>}

<初始化> 預留位置代表在迴圈開始前執行的一或多個命令,以逗號分隔。您通常會使用陳述式的 <初始化> 部分來建立及初始化具有起始值的變數。請注意,逗號語法不適用於指派陳述式,如下列範例所示:

          $ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;) 
          { "r is '$r' and c is '$c'"; break }

這個變數將會成為 For 陳述式的下一個部分中所要測試的條件基礎。

<條件> 預留位置代表 For 陳述式中解析為 true 或 false 布林值的部分。Windows PowerShell® 會評估每次 For 迴圈執行時的條件。如果陳述式為 true,命令區塊中的命令就會執行,並且會再評估一次陳述式。如果條件仍然是 true,陳述式清單中的命令就會再次執行。迴圈會不斷重複,直到條件變成 false 為止。

<重複> 預留位置代表每次迴圈重複時,所執行的一個或多個命令,以逗號分隔。通常這會用來修改在陳述式的 <條件> 部分中測試的變數。

<陳述式清單> 預留位置代表每次輸入或重複迴圈時,所執行的一個或多個命令的集合。陳述式清單的內容會以大括弧括住。

範例

For 陳述式至少需要以括弧括住陳述式的 <初始化>、<條件> 和<重複> 部分,而在陳述式的 <陳述式清單> 部分中,要以大括弧括住命令。

請注意,在接下來的範例中,會刻意將程式碼顯示在 For 陳述式外面。在之後的範例中,程式碼會整合至陳述式中。

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

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

您可以新增其他命令至陳述式清單,使得迴圈每執行一次,$i 的值就會遞增 1,如下列範例所示。

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

在您按下 CTRL+C 來手動中斷命令之前,此陳述式都會持續顯示隨著迴圈每次執行,即遞增 1 的 $i 值。

與其變更 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>
          <condition>
          <repeat>){
          <statement list>
          }

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