about_For

应用到: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

主题

about_For

简短说明

介绍可用于根据条件测试运行语句的语言命令。

详细说明

For 语句(也称为 For 循环)是一种可用于创建循环的语言结构,可在指定条件计算结果为 true 时运行命令块中的命令。

For 循环的典型用法是迭代遍历一组值并对这些值的子集进行运算。在大多数情况下,如果想要迭代遍历数组中的所有值,请考虑使用 Foreach 语句。

语法

下面显示了 For 语句的语法。

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

<init> 占位符表示循环开始之前运行的一个或多个命令(以逗号分隔)。通常将语句的 <init> 部分用于创建变量并使用起始值初始化该变量。请注意,逗号语法不适用于赋值语句,例如以下示例:

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

然后,此变量将基于要在 For 语句的下一部分中测试的条件。

<condition> 占位符表示解析为 true 或 false 布尔值的 For 语句部分。Windows PowerShell® 将在每次运行 For 循环时计算条件。如果该语句为 true,则运行命令块中的命令,并再次计算语句。如果条件仍为 true,则再次运行语句列表中的命令。重复该循环,直到条件变为 false。

<repeat> 占位符表示每次重复循环时运行的一个或多个命令(以逗号分隔)。通常,这用于修改要在语句的 <condition> 部分内测试的变量。

<statement list> 占位符表示在每次进入或重复循环时运行的一个命令或一组命令。语句列表的内容使用大括号括起来。

示例

至少,For 语句需要括号将语句的 <init>、<condition> 和 <repeat> 部分括起来,以及将语句的 <statement list> 部分中的命令用大括号括起来。

请注意,接下来的示例特意介绍了 For 语句之外的代码。在后面的示例中,代码将集成到 For 语句中。

例如,下面的 For 语句不断显示 $i 变量的值,直到你通过按 CTRL+C 手动中断该命令。

          $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> 部分),可以在条件的计算结果为 false 时结束 For 循环。在下面的示例中,当 $i 的值小于或等于 10 时,将运行 For 循环。

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

你可以在 For 循环内使用 For 语句的 <init> 部分执行此任务,而不是在 For 语句外创建和初始化变量。

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

可以使用回车代替分号来分隔 For 语句的 <init>、<condition> 和 <repeat> 部分。下面的示例以此替代形式介绍 For 语句的语法。

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

此种替代形式的 For 语句适用于 Windows PowerShell 脚本文件以及 Windows PowerShell 命令提示符。但是,当你在命令提示符下输入交互式命令时,可以更轻松地通过分号使用 For 语句的语法。

For 循环比 Foreach 循环更灵活,因为它允许你通过使用模式来递增数组或集合中的值。在下面的示例中,$i 变量在 For 语句的 <repeat> 部分中递增 2。

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

另请参阅

about_Comparison_Operators

about_Foreach