在PowerShell中使用Continue
语句将程序流返回到最内部循环的顶部。该语句由for
,Foreach
和while
循环控制。
当在循环中执行此语句时,将跳过continue
语句之后在该循环内执行代码,并且将开始循环的下一个迭代。它通常用于条件,以便用户可以针对特定条件跳过某些代码。
示例1:以下示例在while
循环中使用continue
语句显示从1
到10
的数字,但是不包含5
:
$a = 1 while ($a -le 10) { if ($a -eq 5) { $a += 1 continue } echo $a $a += 1 }
执行上面示例代码,得到以下输出结果:
1 2 3 4 6 7 8 9 10
输出中缺少值5
,因为如果条件为true
,并且变量$a
的值为5
,且条件为true
,并且在变量递增之后遇到了continue
语句,这会使控件在while
循环的开头跳转以进行下一次迭代 ,跳过当前迭代的语句,这就是为什么echo
命令不会针对当前迭代执行的原因。
示例2:下面的示例使用带有continue
语句的do-while
循环,该语句显示10
到20
的值,但不包括15
和18
。
$a=10 do { if ($a -eq 15 -or $a -eq 18) { $a++ continue } echo $a $a++ }while($a -le 20)
示例3:以下示例使用带有continue
语句的for
循环:
for ($k=10 ; $k -gt 0;$k--) { if ($k -eq 5) { continue } echo $k }
执行上面示例代码,得到以下输出结果:
10 9 8 7 6 4 3 2 1
在PowerShell中使用Break
语句可立即退出循环。当在switch
或loop
语句之外使用脚本时,它也可以用于停止脚本的执行。
示例1:以下示例显示如何使用break
语句退出for
循环:
for($a=1; $a -lt 10; $a++) { if ($a -eq 6) { break } echo $a }
执行上面示例代码,得到以下输出结果:
1 2 3 4 5
在此示例中,当变量$a
的值为6
时,break
语句退出for
循环。
示例2:以下示例显示如何使用break
语句退出foreach
循环:
$array="Windows","Linux","MacOS","Android" foreach ($os in $array) { if ($os -eq "MacOS") { break } echo $os }
执行上面示例代码,得到以下输出结果:
Windows Linux
在此示例中,Foreach
语句迭代数组$array
的值。 每次执行代码块。 If
语句前两次求值为False
,并且变量的值显示在PowerShell上。 第三次,执行循环,但是变量$array
的值等于字符串:MacOS
。 此时,将执行Break
语句,并退出Foreach
循环。
示例3:下面的示例显示如何使用break
语句退出switch
语句:
$num = 2 switch($num) { 1{ echo "value is equal to 1"} 2{ echo " value is equal to 2" ; break } 3{ echo " value is equal to 3" ; break } 200{ echo " value is equal to 200" ; break } }
执行上面示例代码,得到以下输出结果:
value is equal to 2