Пазлы циклов (Loops) — Софт Эйт Софт
Description: Блоки визуального программирования для создания циклов.

# Пазлы циклов (Loops)

Эти пазлы предоставляют средства для создания циклов в ваших приложениях.

## Содержание

- Предупреждение о вечных циклах
- Перечень пазлов
  - repeat
  - for each
  - for each in dict
  - count with
  - repeat while / until
  - break / continue

#

## Предупреждение о вечных циклах

Будьте осторожны с этими пазлами, так как легко создать вечные циклы и вызвать зависание вашего браузера. Если вы случайно сохранили такой ошибочный сценарий, вы можете восстановить предыдущую версию пазлов из резервного хранилища.

#

## Перечень пазлов

#

### repeat

Этот пазл запускает пазлы, помещенные в слот do, указанное количество раз.

Например, следующий набор пазлов создает несколько копий куба и размещает их случайным образом на сцене.

#

### for each

Этот пазл выполняет итерацию по заданному списку и запускает пазлы, помещенные в слот do для каждого элемента этого списка. Элементы для соответствующей итерации доступны через автоматически создаваемую переменную.

Например, следующий набор пазлов добавляет аннотации ко всем объектам из списка.

#

### for each in dict

Этот пазл выполняет итерацию по заданному словарю и запускает пазлы, помещённые в слот do для каждого поля словаря. Поля словаря представлены в виде автоматически создаваемых переменных для ключа и значения.

Например, следующие пазлы выводят из словаря информацию о направлениях вылетов. Вывод осуществляется в браузерную консоль.

#

### count with

Этот пазл похож на for each, за исключением того, что в нем значения переменной цикла принимают значения из указанной числовой последовательности.

Например, следующий набор пазлов пробегает от `2` до `10` с шагом `2`, создавая таким образом числа `2`, `4`, `6`, `8` и `10`, клонирует куб на каждом шаге и использует эти числа для расположения копий вдоль оси X.

#

### repeat while / until

Пазл repeat while запускает пазлы, помещенные в слот do, до тех пор, пока указанное логическое условие истинно. Напротив, пазл repeat until прекращает выполнение сразу после того, как указанное логическое условие становится ложным.

Этот пазл хорошо подходит для ситуаций, когда внутри цикла что-то меняется, и это влияет на ваше решение продолжать или прекратить выполнение итераций. Например, следующий набор пазлов, использующий вариант repeat while, продолжает запрашивать ответ пользователя до тех пор, пока пользователь отвечает "да".

Вы можете использовать вариант repeat until, чтобы задать тот же вопрос, но в несколько более раздражающей манере, делая ответ "нет" единственной возможностью прекратить это.

#

### break / continue

Большинство циклов выполняется до тех пор, пока не будет выполнено условие завершения (в случае пазлов repeat) или пока все значения не будут приняты переменной цикла (в случае пазлов count with и for each). Этот пазл предоставляет дополнительные средства для управления поведением цикла. Хотя в приведенных ниже примерах используется пазл for each, они могут быть использованы с любым типом цикла.

Вариант break обеспечивает ранний выход. Например, в следующем наборе пазлов выполняется поиск объекта с именем "Cube". Как только он найден и переменная result установлена, дальнейшая итерация не требуется, и поэтому мы выходим из цикла.

С другой стороны, вариант continue пропускает текущую итерацию, чтобы началась следующая итерация цикла. Например, следующий набор пазлов добавляет аннотации ко всем объектам на сцене, кроме "Cube".

## Проблемы с пазлами?

Обращайтесь за помощью на наш форум!