We rise up for the things we believe in over and over again

Однако, здравствуйте. Оказалось, что оператор Continue, который должен переходить к следующей итерации цикла, внутри которого он вызван, не работает в некоторых случаях. Вот пример:

Суть кода - в switch проверяется значение переменной $i. Если оно равно 8, пишется предупреждение, вызывается оператор Continue, и скрипт переходит к итерации под номером 9. Во всех остальных случаях switch не делает ничего, и сценарий выполняет следующую за switch инструкцию "напиши мне значение переменной $i. А вот что мы получаем на самом деле:

С другой стороны, исправь мы код совсем чуть-чуть, получим ровно то, что требовалось:

Получается, что continue тоже считает switch за цикл? Это засада.

@музыка: Sandra - Hi! Hi! Hi!

@темы: PowerShell, Scripting

Комментарии
17.10.2016 в 16:56

Тотальная неудачница и убийца жёстких дисков.
А default не выполняется? Может это как в Цэ – exit или что там выходит из свича?
17.10.2016 в 16:56

Тотальная неудачница и убийца жёстких дисков.
break.
17.10.2016 в 21:18

We rise up for the things we believe in over and over again
В случае, если срабатывает ветка с continue, default не обрабатывается. Да и не может оно в этой итерации обработаться никак, значение $i это не позволит сделать.
Примечательно вот что:

It returns flow to the top of the innermost loop that is controlled by a While, For, or Foreach statement

Про switch ни слова, и тем не менее.
19.10.2016 в 01:31

Тотальная неудачница и убийца жёстких дисков.
Я не про то. Что даёт код вроде этого?


19.10.2016 в 09:24

We rise up for the things we believe in over and over again
Будет выдано #1
19.10.2016 в 11:25

Тотальная неудачница и убийца жёстких дисков.
Хммм... Значит глюк повершелла.
19.10.2016 в 11:29

We rise up for the things we believe in over and over again
Не то, чтобы глюк, скорее недокументированная особенность, которая тянется аж с первых версий и до последней пятой.
20.10.2016 в 13:54

Тотальная неудачница и убийца жёстких дисков.
У Microsoft большой опыт в превращении багов в недокументированные фичи ^^'
20.10.2016 в 13:57

We rise up for the things we believe in over and over again
С этим сложно спорить :)
Напомнило случай из прошлого. Ролевка на полигоне, осада крепости. Кто-то из осаждавших перелез через ограждение и вырубил пару засевших внутри. Понеслись вопли:
- Это против правил! Вы не штурмовали крепость!!!
На что Хок, возглавшявший осаду, невозмутимо заявляет:
- Да? Ну ладно.
И далее на всю поляну орёт:
- Объявляем ШТУРМ!!!
После чего лазутчик дорезает оставшихся защитников крепости :)
20.10.2016 в 16:20

Тотальная неудачница и убийца жёстких дисков.
Про новую спецификацию историю я рассказывала ^^
20.10.2016 в 16:22

We rise up for the things we believe in over and over again
:)