我有以下循环结构:
现在,有没有任何方法可以在不使用任何break变量的情况下从for循环内部继续执行外部while循环的下一个迭代?因此,如果"something is true",我不想继续执行"#do more stuff",而是执行下一个"$reader.read()"。 "Continue"只会跳转到下一个for循环迭代。"Break"只会中断for循环。
while ($reader.Read() -eq $true)
{
$row = @{}
for ($i = 0; $i -lt $reader.FieldCount; $i++)
{
if(something...)
{
#continue with while
}
}
#do more stuff...
}
现在,有没有任何方法可以在不使用任何break变量的情况下从for循环内部继续执行外部while循环的下一个迭代?因此,如果"something is true",我不想继续执行"#do more stuff",而是执行下一个"$reader.read()"。 "Continue"只会跳转到下一个for循环迭代。"Break"只会中断for循环。
GOTO
”——您不能将执行转移到任意位置,只能转移到明确定义的位置(即循环的末尾)。为了加强这一点,PowerShell甚至没有GOTO
语句,这在脚本语言中相当罕见。 - Jeroen Mostertcontinue nextRow
而不是break :nextRow
。 - silentbreak :nextRow
会从for
循环内部终止外部循环,这不是我们想要的(在这种情况下,但它也很有用)。 - Jeroen Mostertcontinue nextRow
只有在没有:
的情况下才能正常工作。如果加上:
,它将继续执行 for 循环。 - silent