Главная » Статьи » Создание карт » Обучение Разное

Работа с тригерами (Циклы (практика))

08-12-2016Циклы (практика)
Цикл - повторение одного и того же действия.
Циклы
Итак, цикл - повторение действий. Давайте посмотрим пример:
For each (Integer A) from 1 to 10, do (Actions)
Loop - Actions
Set i = (i + 1)
Смотрим на первую строчку: For each (Integer A) from 1 to 10, do....
Это - "заголовок" цикла, в котором назначается сколько раз будет выполнено действие. Integer A значит, что как "счетчик" цикла будет использована переменная A (в данном случае она автоматически создается и убирается после выполнения цикла). При выполнения действия в счетчике будет находится номер итерации (т. е. выполнения) цикла. Так, при первом выполнении там будет один, при втором - два, третьем - три и так далее. Вторую строчку можно пропустить, она будет в любом цикле. Смотрим третью: Set i = (i + 1). Это - действие, которое и будет выполнено множество раз. Оно не ограничивается одной строчкой - можно поставить сколько угодно действий.

Теперь можно сказать что же этот цикл делает: присваивает переменной i значение i + 1 десять раз. После выполнения цикла в переменной i будет значение 10 (в том случае, если начальное значение было 0). Грубо говоря, цикл выполняет операцию i + 10.[field=Примечание]Важно понимать, что A - тоже переменная, и читать / записывать значение из неё / в неё можно откуда угодно. Так, можно получить её значение даже вне цикла, хотя это не имеет смысла. Но такая "возможность" может вызвать один серьезый глюк: если запустить два цикла, и оба работающие с переменной A, они обе будут пытаться изменять значение A. Скорее всего, это закончится тем, что циклы (оба) будут выполнены неправильно: действие будет выполнено несколько лишних раз либо наоборот - будет выполнено меньше раз, чем требуется. Поэтому, в триггерах есть возможность использовать другие переменные, не только A (также существует переменная B, но если нам надо сразу 3 цикла запустить?). Когда Вы создаете действие цикла (имеется в виду действия создания цикла, а не действия в цикле) у Вас есть выбор: "For Each A...", "For Each B...", "For Each Variable...". Второе - тоже самое, что первое (какая разница: A или B? хотя если у вас больше чем два цикла одновременно не будет - рекомендую, потому что тогда не нужно создавать еще одну переменную). А вот используя третье Вы можете назначить, какую именно переменную надо использовать как счетчик (тип переменной - обязательно integer).

В том же меню Вы найдете еще два типа действий цикла: "... Do Multiple Actions" и, соответственно, без такой надписи ("просто" цикл). Как видно из названий, один цикл дает возможность сделать несколько действий в триггере, а другой - нет. Никакой разницы нет, что использовать первый, что второй.

Давайте рассмотрим еще один пример. Помните, нам надо было в переменную i занести значение 1 + 2 + 3 + 4 + 5 ... + 10?
For each (Integer A) from 1 to 10, do (Actions)
Loop - Actions
Set i = (i + (Integer A))
В итоге в переменную i будет внесено как раз нужное значение. Судите сами - переменной i каждый раз прибавляется значение, которое само по себе меняется (номер итерации цикла). Таким образом, сначала будет Set i = (i + 1), затем Set i = (i + 2) и так далее.



Категория: Обучение Разное | Добавил: Dark_WR (08-12-2016 в 12:49:07)
Просмотров: 1487 | Рейтинг: 5.0/1
Всего комментариев: 0
avatar
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта