Ознакомьтесь с нашей политикой обработки персональных данных
14:35 

Powershell - Continue

Hikedaya
В Dash'e под Chronostasis'ом.

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

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

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

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

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

@темы: PowerShell, Scripting

URL
Комментарии
2016-10-17 в 16:56 

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

2016-10-17 в 16:56 

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

2016-10-17 в 21:18 

Hikedaya
В Dash'e под Chronostasis'ом.
В случае, если срабатывает ветка с continue, default не обрабатывается. Да и не может оно в этой итерации обработаться никак, значение $i это не позволит сделать.
Примечательно вот что:

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

Про switch ни слова, и тем не менее.

URL
2016-10-19 в 01:31 

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


2016-10-19 в 09:24 

Hikedaya
В Dash'e под Chronostasis'ом.
Будет выдано #1

URL
2016-10-19 в 11:25 

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

2016-10-19 в 11:29 

Hikedaya
В Dash'e под Chronostasis'ом.
Не то, чтобы глюк, скорее недокументированная особенность, которая тянется аж с первых версий и до последней пятой.

URL
2016-10-20 в 13:54 

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

2016-10-20 в 13:57 

Hikedaya
В Dash'e под Chronostasis'ом.
С этим сложно спорить :)
Напомнило случай из прошлого. Ролевка на полигоне, осада крепости. Кто-то из осаждавших перелез через ограждение и вырубил пару засевших внутри. Понеслись вопли:
- Это против правил! Вы не штурмовали крепость!!!
На что Хок, возглавшявший осаду, невозмутимо заявляет:
- Да? Ну ладно.
И далее на всю поляну орёт:
- Объявляем ШТУРМ!!!
После чего лазутчик дорезает оставшихся защитников крепости :)

URL
2016-10-20 в 16:20 

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

2016-10-20 в 16:22 

Hikedaya
В Dash'e под Chronostasis'ом.
:)

URL
   

Записная книжка

главная