While (Lua): различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: «== Описание == '''while''' - оператор цикла. Создает цикл, который выполняется до того момента, п...»)
 
 
(не показана 1 промежуточная версия 1 участника)
Строка 2: Строка 2:
  
 
'''while''' - оператор цикла. Создает цикл, который выполняется до того момента, пока условие является истиной. Выполняет операцию сравнения, а так же проверку цвета пикселя и последнего сообщения от сервера (для ultima online).  
 
'''while''' - оператор цикла. Создает цикл, который выполняется до того момента, пока условие является истиной. Выполняет операцию сравнения, а так же проверку цвета пикселя и последнего сообщения от сервера (для ultima online).  
<br>Для отрицания сравнения используется while (not ()).  
+
<br>Для отрицания сравнения используется while (not ()).  
&lt;br>Для выхода из цикла используются оператор break.  
+
<br>Для выхода из цикла используются оператор break.  
&lt;br>Для операций сравнения используются знаки операций: >, &lt;, ==(равно), &lt;=, >=, ~=(не равно). Так же используются логические операторы or и and:
+
<br>Для операций сравнения используются знаки операций: >, <, ==(равно), <=, >=, ~=(не равно). Так же используются логические операторы or и and:
 
:or - логическое ИЛИ. Или один или другой или оба.
 
:or - логическое ИЛИ. Или один или другой или оба.
 
:and - логическое И. И один и другой.
 
:and - логическое И. И один и другой.
 
Для указания приоритета нескольких операций используются круглые скобки: (, ).  
 
Для указания приоритета нескольких операций используются круглые скобки: (, ).  
&lt;br>В конце операции необходимо поставить end для корректного выполнения сценария.
+
<br>В конце операции необходимо поставить end для корректного выполнения сценария.
  
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: опционально.  
 
Привязка к окну: опционально.  
&lt;br>Работа со свернутым окном: частично.
+
<br>Работа со свернутым окном: частично.
 
  while условие do
 
  while условие do
 
     блок
 
     блок
Строка 31: Строка 31:
 
  -- Результатом работы является умножение значения переменной i на два, каждый раз, до того момента,
 
  -- Результатом работы является умножение значения переменной i на два, каждый раз, до того момента,
 
  -- пока значение переменной i не  станет равной единице, т.е. бесконечно.
 
  -- пока значение переменной i не  станет равной единице, т.е. бесконечно.
 +
 +
--lua
 +
while color(403, 234) ~= 4727808 do  --пока цвет в координатах 403, 234 не будет равен 4727808
 +
    log ('---')  -- вывести в лог  1
 +
    wait (10)
 +
end
 +
log ('+++')
  
 
  --lua
 
  --lua
Строка 67: Строка 74:
  
 
[[For (Lua)]]
 
[[For (Lua)]]
&lt;br>[[Repeat (Lua)]]
+
<br>[[Repeat (Lua)]]
&lt;br>[[Break (Lua)]]
+
<br>[[Break (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 ("Вышли из цикла")

Смотрите также

For (Lua)
Repeat (Lua)
Break (Lua)