Было бы неплохо использовать Perl redo , и я надеюсь, что они появятся в следующей версии, но в основном потому, что это будет полезно в Foreach-Object , foreach и , в то время как циклы.
Тем не менее, в цикле для , по крайней мере, типичном, вы можете легко воспроизвести функциональность, просто обращая инкремент непосредственно перед оператором continue .
В этом случае, поскольку оператор приращения (он же <repeat>
в документации PowerShell) равен $color++
, просто введите $color--
непосредственно перед continue
. Для ясности / элегантности, я бы предложил поместить их в одну строку, чтобы было яснее, что это по сути одноконтурный элемент управления:
$color--; continue
Единственные причины, по которым я могу думать, почему это никогда не сработает:
- В противном случае вы манипулируете переменной цикла внутри цикла. Но я думаю, что это ужасный стиль программирования, и любой, кто делает это, заслуживает перерыва в работе сценария. ;)
- У вас есть условие, которое зависит от некоторой другой переменной, которая может изменяться в цикле, например
for ($i = 0; $i -lt $j; $i++)
, где $j
может меняться в цикле.