While (Lua): различия между версиями
Перейти к навигации
Перейти к поиску
Tatikoma (обсуждение | вклад) |
Cirus (обсуждение | вклад) |
||
Строка 31: | Строка 31: | ||
-- Результатом работы является умножение значения переменной i на два, каждый раз, до того момента, | -- Результатом работы является умножение значения переменной i на два, каждый раз, до того момента, | ||
-- пока значение переменной i не станет равной единице, т.е. бесконечно. | -- пока значение переменной i не станет равной единице, т.е. бесконечно. | ||
+ | |||
+ | --lua | ||
+ | while color(403, 234) ~= 4727808 do --пока цвет в координатах 403, 234 не будет равен 4727808 | ||
+ | log ('---') -- вывести в лог 1 | ||
+ | wait (10) | ||
+ | end | ||
+ | log ('+++') | ||
--lua | --lua |
Текущая версия на 12:25, 11 апреля 2020
Содержание
Описание
while - оператор цикла. Создает цикл, который выполняется до того момента, пока условие является истиной. Выполняет операцию сравнения, а так же проверку цвета пикселя и последнего сообщения от сервера (для ultima online).
Для отрицания сравнения используется while (not ()).
Для выхода из цикла используются оператор break.
Для операций сравнения используются знаки операций: >, <, ==(равно), <=, >=, ~=(не равно). Так же используются логические операторы or и and:
- or - логическое ИЛИ. Или один или другой или оба.
- and - логическое И. И один и другой.
Для указания приоритета нескольких операций используются круглые скобки: (, ).
В конце операции необходимо поставить end для корректного выполнения сценария.
Синтаксис
Привязка к окну: опционально.
Работа со свернутым окном: частично.
while условие do блок end
while (not(условие)) do блок end
Примеры
--lua local i = 2 while i ~= 1 do i = i * 2 msg (i) end -- Результатом работы является умножение значения переменной i на два, каждый раз, до того момента, -- пока значение переменной i не станет равной единице, т.е. бесконечно.
--lua while color(403, 234) ~= 4727808 do --пока цвет в координатах 403, 234 не будет равен 4727808 log ('---') -- вывести в лог 1 wait (10) end log ('+++')
--lua -- Бесконечный цикл -- Здесь сделаем подготовку local count = 1 msg ("На счетчике число: " .. count .. ", будем увеличивать...") -- А теперь зацикленная часть скрипта while 1 == 1 do -- условие всегда будет выполняться, а значит цикл - бесконечный count = count + 1 -- увеличим значение на 1 msg ("Теперь на счётчике число: " .. count) end
--lua -- Выход из цикла через break local count = 0 while true do -- пока истина, т. е. бесконечно, тоже самое что while 1 == 1 do count = count + 1 -- увеличим значение на 1 msg ("Теперь на счётчике число: " .. count) if count == 3 then -- если переменная 'count' = 3 break -- выходим из цикла end end msg ("Вышли из цикла")
--lua local a = 1 while (not (a == 4)) do -- пока переменная 'a' не равна 4, тоже самое что: while a ~= 4 do log (a) a = a + 1 -- увеличим значение на 1 end log (a) log ("Вышли из цикла")