Цикл FOR

Во-первых, рассмотрим цикл FOR:

В данном цикле используется переменная, значение которой изменяется от<Нач._значение> до <Кон._значение>. То есть при первом выполнении командвнутри цикла переменная имеет значение <Нач._значение>. При выполнениикоманд второй раз переменная изменяется в соответствии с указанным значением <Шаг>. Если никакой шаг не задать, то переменная увеличится на 1. Послетакого изменения, прежде чем выполнять команды второй раз, проверяется,не достигла ли переменная значения <Кон._значение>. Если достигла, то выполнение команд внутри цикла прекращается и управление передается команде, следующей за циклом. Например, вам надо вывести сообщение «Я хочу научиться писать программы!» 10 раз.

В этом случае мы нигде в теле цикла не использовали значение переменной.Рассмотрим другой случай. Допустим, что нам требуется вывести список предметов на складе с указанием порядкового номера. Список предметов хранится вмассиве ga_Things. Количество предметов хранится в переменной gn_ThingsCnt.

Команды EXIT и LOOP прерывают выполнение цикла, но действуют по-раз-ному. EXIT прекращает дальнейшее выполнения цикла и передает управлениекоманде, следующей за циклом. Команда LOOP пропускает выполнение команд,следующих за ней до ключевого слова ENDFOR, и продолжает полноценное выполнение цикла.

Цикл DO WHILE

Когда требуется выполнять группу команд до тех пор, пока выполняется установленное условие, применяют циклическую конструкцию DO WHILE. Собственно, с английского языка эта фраза и переводится «Делай, пока». А после ключевого слова WHILE (пока) и ставится условие, которое должно выполняться.

Действие команд EXIT и LOOP аналогично используемым в конструкции FOR.Рассмотрим применение конструкции DO WHILE на примере. Допустим, требуется выводить значения элементов числового массива ga_Things, пока невстретится значение 0 или пока пользователь не прервет вывод сообщений.

Что касается применения циклов для обработки массивов, мы немного разобрались. А как быть с записями таблиц? Какой подход считать наилучшим?Можно перебрать все записи таблицы, применив и цикл FOR, и цикл DO WHILE.Например, так:

Или так:

Но существует более грамотное решение. Рассмотрим его ниже.