Страница 1 из 1

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

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

Так вот также только на "while".

Добавлено: Чт май 22, 2008 11:09 pm
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 будет крутиться пока не будет достигнуто условие в скобках.

Добавлено: Чт май 22, 2008 11:35 pm
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
}

Добавлено: Пт май 23, 2008 12:02 am
Ra3iel_
упс, да промазал. Конечно ты прав