Цикл «для по» (со счетчиком)
Цикл для по выполняет действия, указанные в теле цикла, заданное число раз. Количество итераций определяется с помощью счетчика цикла, для которого указываются начальное и конечное значения, а также шаг изменения.
Синтаксис
для счетчик-цикла = выражение1 [вниз] по выражение2 [шаг N]
       тело-цикла
    [прервать]
       тело-цикла
    [продолжить]
       тело-цикла
;
- 
счетчик-циклаУправляет выполнением итераций. Данная переменная имеет тип
Числои объявляется с модификаторомзнч. Цикл выполняется до тех пор, пока переменнаясчетчик-циклапринимает значения между результатами вычислениявыражение1ивыражение2. Переменная, выступающая в роли счетчика цикла, не может быть объявлена вне цикла. Ее областью видимости является тело цикла. Это позволяет использовать одно и то же имя счетчика цикла в разных невложенных циклах в одном блоке кода, не опасаясь появления ошибок.Цикл будет продолжаться до тех пор, пока счетчик цикла меньше или равен условию завершения цикла, которое определяется с помощью
выражение2. Счетчик цикла автоматически увеличивается на заданныйшагпосле окончания каждой итерации. - 
выражение1Результат вычисления данного выражения присваивается переменной
счетчик-циклаи используется при первой итерации. Исключением является случай, когда начальное значение счетчика цикла строго больше значениявыражение2, которое определяет условие завершения цикла. В этом случае цикл сразу завершается без выполнения и тераций. - 
выражение2Выражение, определяющее условие завершения цикла.
 - 
внизИспользуется, когда необходимо сделать обход в обратном направлении.
метод ВычислитьСумму()
пер Сумма = 0
для Индекс = 100 вниз по 10 шаг 10
Сумма += Индекс
;
; // Сумма = 550 - 
шагЗадает значение, на которое изменяется переменная
счетчик-циклапри каждой итерации. Значение шага вычисляется один раз перед началом цикла. Если шаг не указан,счетчик-циклаизменяется на единицу.метод ВычислитьСумму()
пер Сумма = 0
для Индекс = 10 по 100 шаг 10
Сумма += Индекс
;
; // Сумма = 550 - 
продолжитьИспользуется, когда необходимо досрочно завершить выполнение очередной итерации и перейти к следующему значению счетчика цикла. Итерация прерывается на ключевом слове
продолжить, счетчик цикла увеличивается, и итерация начинается сначала, если цикл еще не завершен. - 
прерватьИспользуется, когда надо завершить цикл немедленно, не дожидаясь его штатного завершения (по значению счетчика цикла).
 
Принцип работы
Цикл для работает следующим образом:
- Переменной 
счетчик-циклаприсваивается начальное значение, которое получается путем вычислениявыражение1. - Проверяется необходимость завершения цикла. Для этого вычисляется 
выражение2и проверяется, что значение переменнойсчетчик-цикламеньше или равно результату вычисления выражения. Если значениесчетчик-циклабольше значениявыражение2, цикл завершается. Вычисление значениявыражение2происходит один раз, в начале цикла, и не пересчитывается при каждой итерации. - Выполняется тело цикла.
- Если во время выполнения тела цикла обнаруживается ключевое слово 
продолжить, то значение счетчика цикла увеличивается на 1 и выполнение продолжается с шага 2. - Если во время выполнения тела цикла обнаруживается ключевое слово 
прервать, то выполнение тела цикла прерывается безусловно и управление передается в инструкцию, которая следует за последней инструкцией цикла. 
 - Если во время выполнения тела цикла обнаруживается ключевое слово 
 - Значен ие счетчика цикла увеличивается на значение шага, и выполнение продолжается с шага 2.
 
Пример
метод СортироватьПоВозрастанию(Массив: Массив<Число>): Массив<Число>
    если Массив.Размер() < 2
        возврат Массив
    ;
    пер Переставлены: Булево // Флаг для остановки сортировки, если перестановок не было
    для Индекс1 = 0 по Массив.Граница() - 1
        Переставлены = Ложь
        для Индекс2 = 0 по Массив.Граница() - Индекс1 - 1
            // Сравниваем соседние элементы
            если Массив[Индекс2] > Массив[Индекс2 + 1]
                // Меняем элементы местами, если их порядок неверный
                пер ВременнаяПеременная = Массив[Индекс2]
                Массив[Индекс2] = Массив[Индекс2 + 1]
                Массив[Индекс2 + 1] = ВременнаяПеременная
                Переставлены = Истина // Отмечаем, что произошла перестановка
            ;
        ;
        // Если перестановок не было, завершаем цикл,
        // так как массив уже отсортирован
        если не Переставлены
            прервать
        ;
    ;
    возврат Массив
;
метод ВыполнитьСортировку()
    знч Массив = [10, 120, 45, 30, 65, 50, 100]
    знч МассивПоВозрастанию = СортироватьПоВозрастанию(Массив) // [10, 30, 45, 50, 65, 100, 120]
;