открыть: Синтаксис 2Syntax 1

Цикл while

Цикл с предусловием

Конструкция `while _условие_ ~ _тело_цикла_ ; выполняется следующим образом: Перед каждой итерацией проверяется условие; Если оно эквивалентно true #1, то выполняется тело цикла и конструкция переходит к следующей итерации. Если проверяемое условие эквивалентно false #0, то происходит завершение цикла.

a = 1 `while a <= 5 ~ a #echo # a += 1 ; -- выдаст '12345'

Цикл с постусловием

Для того, чтобы условие проверялось после каждой итерациии – непосредственно после ключевого слова ставится двоеточие `while:. Это гарантирует то, что тело цикла выполнится хотя-бы один раз.

a = 1 `while: a < 1 ~ a #echo# ; -- выдаст '1'

Возвращаемое циклом значение

Конструкция while возвращает число выполненных итераций.

x1 = `while #0 ~ ; -- x1 = 0 x2 = `while: #0 ~ ; -- x2 = 1

Разделение тела цикла на части

Тело цикла можно разделить символом \ на две части. Первая часть выполняется только на первой итерации цикла, а вторая – на всех последующих.

array = [0 1 2 3 4] i = 0 `while i < array #count # ~ -- Первая итерация array[i] `echo; i += 1 \ -- Последующие итерации (кроме первой) ', ' `echo array[i]; i += 1 ;

В приведённом примере запятая не выводится перед элементом массива с индексом 0.

Дополнительный блок

После условия можно поставить символ \, а за ним и перед тильдой ~ разместить дополнительный блок программы. Он будет выполняться после тела цикла и перед условием на каждом шагу.

x = 1 `while: x <= 5 \ x += 1 ~ x #echo # ; -- выдаст: 12345

Ещё пример:

x = 1 `while: x <= 5 \ x #echo # x += 1 ~ \ ', ' #echo # ; -- выдаст: 1, 2, 3, 4, 5

Смотри также: Ключевые слова: break, next