Ключевое слово 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")выведет
"ABC"3 раза.
Примечание: только целочисленные константы принимаются в качестве
<число>на данный момент {…}.
4. Цикл "for in".
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]`
Редко используемые возможности
5. Цикл по диапазону.
L <диапазон> ...
Примеры:
L 1..n {print("ABC")}выведет
"ABC"n раз.
L 0.<n {print("ABC")}выведет
"ABC"n раз.
Ключевые подслова 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на данный момент не поддерживаются.