Пока (While)

Цикл «Пока» («While») – это цикл, который выполняется, пока условие, указанное перед телом цикла, принимает значение «Истина». Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла. Оператор цикла «Пока» («While») предназначен для циклического повторения операторов, находящихся внутри конструкции «Цикл – КонецЦикла» («Do – EndDo»).


Синтаксис:

Пока <ЛогическоеВыражение> Цикл

    // Операторы

    [Прервать;]
    // Операторы
    [Продолжить;]

    // Операторы

КонецЦикла

Или

While <LogicExpression> Do

   // Операторы
    [Break;]
    // Операторы
    [Continue;]
    // Операторы

EndDo


Альтернативный синтаксис:

Пока <ЛогическоеВыражение>

/

    // Операторы

    [Прервать;]
    // Операторы
    [Продолжить;]

    // Операторы

\

Или

While <LogicExpression>

/

    // Операторы
    [Break;]
    // Операторы
    [Continue;]
    // Операторы

\


<ЛогическоеВыражение> (<LogicExpression>) – логическое выражение.

Цикл (Do) – операторы, следующие за ключевым словом «Цикл», выполняются, пока выражение <ЛогическоеВыражение> принимает значение «Истина».

// Операторы – исполняемый оператор или последовательность операторов.

Прервать (Break) – оператор, который позволяет прервать выполнение цикла в любом месте. После выполнение этого оператора управление передается оператору, следующему за ключевым словом «КонецЦикла». (См. подраздел «Прервать (Break)»).

Продолжить (Continue) – оператор, который немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле цикла за ним, на данной итерации обхода не выполняются. (См. подраздел «Продолжить (Continue)»).

КонецЦикла (EndDo) – ключевое слово, которое завершает структуру оператора цикла.



Пример:

//В цикле выполняется удаление строк из элемента формы
//«Дерево» и соответствующих записей в табличной части.
КлючСтроки = ЭтаФорма.Дерево.СледующаяСтрока();
Пока КлючСтроки <> 0 Цикл
    ТекЗаписьТЧ = ПолучитьЗаписьТабличнойЧасти(КлючСтроки);
    ТекЗаписьТЧ.Удалить();
    КлючСтроки = ЭтаФорма.Дерево.СледующаяСтрока();
КонецЦикла;