Вопрос по конструкции "while"

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Вопрос по конструкции "while"

Сообщение Zellos »

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

Так вот также только на "while".
Ra3iel_
Начинающий
Сообщения: 46
Зарегистрирован: Пн ноя 20, 2006 1:58 am

Сообщение Ra3iel_ »

ммм
while ( $a < 3 ) as "название"
-------------
$a++ #(видимо увеличивает переменную "а" на 1)
end "название"
----------

с if это будет как

if ( $a < 3 ) goto nya
goto end
:nya
--------
$a++ #(опять то же увеличение переменной)
if ( $a < 3 ) goto nya
:end
---------

Т.е. цикл операций который повторяется пока число не достигнет определенной отметки.

Единственное что если мне не изменяет память цикл с while в любом случае проходит один раз. в то время как пример с иф не запустится ни разу если а >= 3

Добавлено спустя 4 минуты 2 секунды:

Короче говоря то что у тебя внутри конструкции while as - end будет крутиться пока не будет достигнуто условие в скобках.
Святой ангел смерти...
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Сообщение Zellos »

Что такое цикл и как он работает я знаю. Просто в разных языках разный синтаксис.

Кстати ты не правильно написал через if у тебя проверка if вне "цикла", то есть "цикл" будет крутится бесконечно. Нужно чтобы конструкция if была внутри "цикла" =)

Мой пример.

Код: Выделить всё

automacro timer {
     pm /Заводим бомбу на (\d+) секунд/
     call {
         $i = $.lastMatch1
         :start
         if ($i == 0) goto end
         do c $i
         pause 1
         $i--
         goto start
         :end
         do c Бабах
         do c /gg
         release timer
     }
     run-once 1
}
Ra3iel_
Начинающий
Сообщения: 46
Зарегистрирован: Пн ноя 20, 2006 1:58 am

Сообщение Ra3iel_ »

упс, да промазал. Конечно ты прав
Святой ангел смерти...
Ответить