Ключевое слово L/loop
11l поддерживает 5 форм циклов.
1. Бесконечный цикл.
L print("\a") sleep(1)
2. Цикл "while".
L <условие> ...
Тело цикла выполняется/повторяется до тех пор, пока заданное условие истинно (равно 1В).
Примечание: если
<условие> представлено единственным идентификатором, например: L ok {...}, тогда соблаговолите писать так:
L ok == 1B {...}.
3. Повтор тела цикла заданное количество [в виде целого числа] раз.
L <число> ...
Пример:
L 3 print("ABC")выведет
ABC3 раза.
Примечание: только целочисленные константы принимаются в качестве
<число> {…}.4. Повтор тела цикла заданное количество [в виде выражения] раз.
L 1..количество // или 0.<количество ...
Примеры:
L 1..n {print("ABC")}выведет
ABC
n раз.L 0.<n {print("ABC")}выведет
ABC
n раз.5. Цикл "для каждого".
L(<переменная>) <итерируемое выражение> ...
Примеры:
L(x) 1..10 {print(x)}выведет числа от
1до
10включительно.
L(c) "str" {print(c)}выведет
s,
tи
r.
L(n) [9,7] {print(n)}выведет
9и
7.
L(k, v) [‘k’ = 1] {print(k‘=’v)}выведет
k=1.
Если необходимо изменять элементы итерируемого контейнера, тогда поставьте
&перед
<переменная>:V arr = [1, 2, 3] L(&el) arr el++ print(arr) // выведет `[2, 3, 4]`
Редко используемые возможности
Ключевые подслова L/loop
Инструкция
L.break/loop.break прерывает выполнение текущего цикла.У вас может возникнуть потребность имея несколько вложенных циклов указать какой из них следует прервать. По умолчанию
L.break/loop.break прерывает самый внутренний цикл. Если вам необходимо прервать не самый внутренний цикл, тогда просто укажите какой именно цикл необходимо прервать:L(y) 0..10 L(x) 0..10 I a[y][x] == 1 L(y).break // прерывает внешний цикл по `y`Также можно использовать
^L.break, ^^L.break и т.д.Инструкция
L.continue/loop.continue прерывает выполнение текущей итерации текущего цикла, и продолжает его выполнение на следующей итерации.Инструкция
L.remove_current_element_and_continue удаляет текущий элемент итерируемого контейнера. Например, этот код удаляет все чётные числа в array:L(i) array I i % 2 == 0 L.remove_current_element_and_continue
Код под
L.was_no_break/loop.was_no_break выполняется только когда цикл успешно завершился без вызова L.break/loop.break (аналогично else в Python):L(test) tests I !test.ok() L.break L.was_no_break print(‘All tests are ok!’)
L.index/loop.index можно использовать для получения индекса (номера начиная с 0) текущей итерации цикла.L.first_iteration/loop.first_iteration является истиной (1B) на первой итерации цикла.L.last_iteration/loop.last_iteration является истиной (1B), если ‘текущий элемент итерируемого контейнера последний’/‘текущая итерация цикла последняя’.L.prev/loop.prev и L.next/loop.next на данный момент не поддерживаются.