Циклы

Если в программе возникает необходимость неоднократного выполнения некоторых операторов, то для этого используются операторы повтора  (цикла). В языке Паскаль различают три вида операторов цикла: цикл с предусловием (while), цикл с постусловием (repeat) и цикл с параметром (for).

Инструкция FOR

  • инструкция for используется для организации циклов с фиксированным, определяемым во время разработки программы, числом повторений;
  • количество повторений цикла определяется начальным и конечным значениями переменной-счетчика;
  • переменная-счетчик должна быть целого типа (integer);
  • вместо НачальноеЗначение и КонечноеЗначение может стоять выражение или переменная;
  • если значение Счетчик в самом цикле изменяться не будет, то после выполнения Инструкции значение переменной увеличивается на единицу.

    Вариант 1 (с увеличением счетчика):

    for Счетчик := НачальноеЗначение to КонечноеЗначение do begin
        (*Инструкции *)
    end;

    Инструкции между begin и end выполняются [{КонечноеЗначениеНачальноеЗначение) + 1] раз.

    Если НачальноеЗначение больше, чем КонечноеЗначение, то инструкции между begin и end не выполняются.

    Примечание:
    Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

    Пример

    Вариант 2 (с уменьшением счетчика):

    for Счетчик := НачальноеЗначение downto КонечноеЗначение do begin
        { Инструкции }
    end;

    Инструкции между begin и end выполняются [{НачальноеЗначениеКонечноеЗначение) +1] раз.
    Если НачальноеЗначение меньше, чем КонечноеЗначение, то инструкции между begin и end не выполняются.

    Пример

    Инструкция REPEAT

    • число повторений инструкций цикла repeat определяется ходом выполнения программы;
    • инструкции цикла repeat выполняются до тех пор, пока условие, стоящее после слова until, ложно;
    • после слова until надо записывать условие завершения цикла;
    • для завершения цикла repeat в теле цикла обязательно должны быть инструкции, выполнение которых влияет на условие завершения цикла;
    • цикл repeat — это цикл с постусловием, т. е. инструкции тела цикла будут выполнены хотя бы один раз;
    • цикл repeat, как правило, используется для организации приближенных вычислений, задач поиска и обработки данных, вводимых с клавиатуры или из файла.
    Схема :

    repeat
    begin
        { Инструкции }
    end until Условие;

    Выполняются инструкции, находящиеся между begin и end (инструкции цикла), после этого проверяется значение выражения Условие. Если оно равно False (т. е. условие не выполняется), то инструкции цикла выполняются еще раз. И так продолжается до тех пор, пока Условие не станет истинным. Таким образом, после слова until записывается условие завершения цикла.

    Примечание:
    Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

    Пример

    Инструкция WHILE

    • число повторений инструкций цикла while определяется ходом выполнения программы;
    • инструкции цикла while выполняются до тех пор, пока условие, записанное после слова while, истинно;
    • после слова while надо записывать условие выполнения инструкций цикла;
    • для завершения цикла while в теле цикла обязательно должны присутствовать инструкции, влияющие на условие выполнения инструкций цикла;
    • цикл while — это цикл с предусловием, т. е. инструкции тела цикла вообще могут быть не выполнены;
    • цикл while, как правило, используется для организации приближенных вычислений, задач поиска и обработки данных, вводимых с клавиатуры или из файла.
    Схема :

    while Условие do begin
        ( Инструкции }
    end;

    Проверяется значение выражения Условие, если оно равно True (условие выполняется), то выполняются инструкции, находящиеся между begin и end (инструкции цикла). Затем снова проверяется значение выражения Условие, и так продолжается до тех пор, пока значение выражения Условие не станет равным False. Таким образом, после слова while записывается условие выполнения инструкций цикла.

    Примечание:
    Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

    Пример

    Еще примеры к инструкции while...

    Операторы завершения цикла

    Для всех операторов цикла выход из цикла осуществляется как вследствие естественного окончания оператора цикла, так и с помощью операторов перехода и выхода.

    В версии Турбо Паскаль 7.0 определены стандартные процедуры:

    Break
    Continue
    Процедура Break выполняет безусловный выход из цикла. Процедура Continue обеспечивает переход к началу новой итерации цикла.

    Заметим, что хотя и существует возможность выхода из цикла с помощью оператора безусловного перехода goto, делать этого не желательно. Во всех случаях можно воспользоваться специально предназначенными для этого процедурами Break и Continue.

     

    К началу