Перейти к основному содержимому

Цикл «для по» (со счетчиком)

Цикл для имеет следующий синтаксис:

для счетчик-цикла = выражение-1 [вниз] по выражение-2 [шаг N]
тело-цикла
[прервать]
тело-цикла
[продолжить]
тело-цикла
;

В этом описании:

  • счетчик-цикла

    Данная переменная управляет выполнением итераций. Эта переменная так и называется — счетчик цикла. Данная переменная имеет тип Число и «объявляется» с модификатором знч. Цикл будет выполняться до тех пор, пока переменная счетчик-цикла принимает значения между результатом вычисления выражение-1 и выражение-2. Переменная, выступающая в виде счетчика цикла, не может быть объявлена вне цикла. Областью видимости счетчика цикла является тело цикла. Это открывает возможность использовать одно и тоже имя счетчика цикла в разных циклах в одном блоке кода (не вложенных!), не опасаясь различных сторонних эффектов.

    Цикл будет продолжаться до тех пор, пока счетчик цикла меньше или равен условию завершения цикла, которое определяется выражение-2. «1С:Исполнитель» автоматически увеличивает значение счетчика цикла на 1 после окончания каждой итерации.

  • выражение-1

    Результат вычисления данного выражения будет присвоен переменной счетчик-цикла и это значение будет использоваться при первой итерации. Исключением является случай, когда начальное значение счетчика цикла будет строго больше, чем значение выражение-2, которое определяет условие завершения цикла. В этом случае цикл сразу завершится, без выполнения итераций.

  • выражение-2

    Выражение, определяющее условие завершения цикла.

  • вниз

    Когда необходимо сделать обход в обратном направлении, то необходимо использовать ключевое слово вниз.

    метод Скрипт()
    пер Сумма = 0
    для Индекс = 100 вниз по 1
    Сумма += Индекс
    ;
    ;
  • шаг

    Когда необходимо сделать обход через заданное количество индексов, то необходимо использовать ключевое слово шаг и задать значение. При этом выражение шага вычисляется один раз перед началом цикла. Ключевое слово шаг можно добавить ко всем видам обхода, без указания шага значения будут уменьшаться или увеличиваться на единицу.

    метод Скрипт()
    пер Сумма = 0
    для Индекс = 1 по 50 шаг 2
    Сумма += Индекс
    ;
    ;
  • продолжить

    Когда необходимо досрочно завершить выполнение очередной итерации цикла и перейти к следующему значению счетчика цикла, можно использовать ключевое слово продолжить. В результате итерация прервется в том месте, где указано это ключевое слово, счетчик цикла будет увеличен и итерация начнется с самого начала (если цикл не будет завершен).

  • прервать

    Данное ключевое слово используется в том случае, когда надо завершить цикл «прямо сейчас», не дожидаясь штатного завершения цикла (по значению счетчика цикла).

Таким образом, цикл для работает следующим образом:

  1. Счетчику цикла (переменная счетчик-цикла) присваивается начальное значение. Начальное значение получается путем вычисления выражения выражение-1.
  2. Проверяется необходимость завершения цикла. Для этого вычисляется выражение-2 и проверяется, что значение переменной счетчик-цикла меньше или равно результату вычисления выражения. Если значение счетчик-цикла больше значения выражение-2 — цикл завершается. Вычисление значения выражение-2 происходит один раз, в начале цикла, и не пересчитывается при каждой итерации.
  3. Выполняется тело цикла.
    • Если во время выполнения тела цикла обнаруживается ключевое слово продолжить, то значение счетчика цикла увеличивается на 1 и выполнение продолжается с шага 2.
    • Если во время выполнения тела цикла обнаруживается ключевое слово прервать, то выполнение тела цикла прерывается безусловно и управление передается на инструкцию, которая следует за последней инструкцией цикла.
  4. Значение счетчика цикла увеличивается на 1 и выполнение продолжается с шага 2.
метод Скрипт()
пер Сумма = 0
для Индекс = 1 по 50
Сумма += Индекс
;
;