Оператор цикла Для предназначен для циклического повторения операторов, находящихся внутри конструкции Цикл – КонецЦикла. Перед началом выполнения цикла значение <Выражение 1> присваивается переменной <Имя переменной>. Значение <Имя переменной> автоматически увеличивается при каждом проходе цикла. Величина приращения счетчика при каждом выполнении цикла равна 1. Цикл выполняется, пока значение переменной <Имя_переменной> меньше или равно значению <Выражение 2>. Условие выполнения цикла всегда проверяется в начале, перед выполнением цикла.
Синтаксис
Для <Имя переменной> = <Выражение 1> По <Выражение 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;Полное описание, параметры и ограничения
Для (For)
Для (For)
Синтаксис:
Для <Имя переменной> = <Выражение 1> По <Выражение 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;
Параметры:
<Имя переменной>
Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается на 1 при каждом повторении цикла. Так называемый счетчик цикла. Значение переменной также может быть изменено внутри самого цикла.
<Выражение 1>
Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.
По
Синтаксическая связка для параметра <Выражение 2>.
<Выражение 2>
Максимальное значение счетчика цикла. Когда переменная <Имя переменной> становится больше чем <Выражение 2>, выполнение оператора цикла Для прекращается. Данное значение вычисляется однократно перед началом цикла и не может быть изменено внутри цикла.
Цикл
Операторы, следующие за ключевым словом Цикл выполняются, пока значение переменной <Имя переменной> меньше или равно значения <Выражение 2>.
// Операторы
Исполняемый оператор или последовательность таких операторов.
Прервать
Позволяет прервать выполнение цикла в любой точке. После выполнение этого оператора управление передается оператору, следующему за ключевым словом КонецЦикла.
Продолжить
Немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле цикла за ним, на данной итерации обхода не выполняются.
КонецЦикла
Ключевое слово, которое завершает структуру оператора цикла.
Описание:
Оператор цикла Для предназначен для циклического повторения операторов, находящихся внутри конструкции Цикл – КонецЦикла. Перед началом выполнения цикла значение <Выражение 1> присваивается переменной <Имя переменной>. Значение <Имя переменной> автоматически увеличивается при каждом проходе цикла. Величина приращения счетчика при каждом выполнении цикла равна 1. Цикл выполняется, пока значение переменной <Имя_переменной> меньше или равно значению <Выражение 2>. Условие выполнения цикла всегда проверяется в начале, перед выполнением цикла.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Для: сложить собственные цены по индексам массива
Индексы массива начинаются с нуля, последняя позиция равна Количество()-1. Пустую коллекцию проверяем заранее.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
Цены = Новый Массив;
Цены.Добавить(100);
Цены.Добавить(50);
Цены.Добавить(250);
Сумма = 0;
Если Цены.Количество() > 0 Тогда
Для Индекс = 0 По Цены.Количество() - 1 Цикл
Сумма = Сумма + Цены[Индекс];
КонецЦикла;
КонецЕсли;
Сообщить(Сумма = 400);
Сообщить(Цены.Количество() = 3);
КонецПроцедурыРазбор по шагам
Создать собственный массив трёх чисел. Сумма первоначально 0.
Для последовательно задаёт Индекс=0,1,2; граница По включительна.
На каждой итерации прибавлять одно значение и после последней выйти из цикла.
Удалите все три Добавить: защита пустого массива пропустит цикл, Сумма останется 0.
Как проверить результат
В исходном варианте два сообщения Истина, итог 400.
Для пустого массива первой проверке соответствует Ложь: она специально ожидает исходные данные.
Ожидаемый результат
Показаны начальный индекс, конечная граница и защита от обращения к отсутствующим элементам.
На что обратить внимание
Количество() — размер, не последний индекс.
Не обращайтесь к Цены[3] при трёх элементах.
Если индекс не нужен, используйте Для Каждого.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Продолжить и Прервать: пропустить ошибочную цену и остановиться на лимите
Продолжить переходит к следующей итерации; Прервать завершает ближайший цикл целиком.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
Цены = Новый Массив;
Цены.Добавить(100);
Цены.Добавить(-1);
Цены.Добавить(200);
Цены.Добавить(500);
Сумма = 0;
Обработано = 0;
Для Каждого Цена Из Цены Цикл
Если Цена <= 0 Тогда
Продолжить;
КонецЕсли;
Если Сумма + Цена > 400 Тогда
Прервать;
КонецЕсли;
Сумма = Сумма + Цена;
Обработано = Обработано + 1;
КонецЦикла;
Сообщить(Сумма = 300);
Сообщить(Обработано = 2);
КонецПроцедурыРазбор по шагам
Обработать цену 100: сумма 100, счётчик 1.
Для -1 выполнить Продолжить: нижняя часть тела не исполнится.
Прибавить 200: сумма 300, счётчик 2.
Для 500 будущая сумма 800 выше лимита. Прервать выходит из цикла до прибавления.
Как проверить результат
Две проверки Истина, сумма 300 и две принятые цены.
Поставьте четвёртую цену 50: цикл дойдёт до конца, итог 350 и три принятые цены.
Ожидаемый результат
Различие пропуска и прекращения показано на двух разных событиях одного обхода.
На что обратить внимание
Оба оператора относятся к ближайшему окружающему циклу.
Прервать не заменяет Возврат из функции.
Правило лимита здесь учебное, не алгоритм реального подбора товаров.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.