我的代码如下:
1..10 | % {
$i=$_
10..20 | % {
if ($_ -gt 12) {
continue
}
Write-Host $i $_
}
}
为什么输出是:
1 10
1 11
1 12
PoweShell中的continue
语句似乎与其他语言没有什么不同,为什么PowerShell的设计是这样的呢?
如果我将continue
更改为return
,那么我会得到预期结果。
答案 0 :(得分:2)
正如PeterSerAI在他的comment中指出的那样,在代码中不使用循环,而是使用Foreach-Object cmdlet {{3} }。
只需使用foreach
循环:
foreach($obj in 1.. 10)
{
$i = $obj
foreach($obj2 in 10 ..20) {
if ($obj2 -gt 12) {
continue
}
Write-Host $obj $obj2
}
}