Новая лаборатория автоматизации

Повышаем качество и производительность вашего производства.

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

28. Основные операторы циклов и ветвления

E-mail Печать PDF

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

Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы while, repeat. Оператор for используется, если число повторений заранее известно.

Оператор while

Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.

 

Синтаксическая диаграмма для данного оператора выглядит следующим обра­зом:

Форма записи:

While < условие продолжения пговторений> do

<тело цикла>

Условие - булевское выражение, тело цикла - простой или составной опе­ратор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и пере­ход к первому после while оператору.

Оператор повтора repeat

Оператор повтора repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после оче­редного выполнения операторов тела цикла (очередной итерации) и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что крите­рием прекращения цикла является равенство выражения константе True. За это цикл repeat часто называют циклом с постусловием, или циклом "ДО", так как он прекращает выполняться, как только значение выражения условия, записанного после слова until, равно True (истина).

Оператор повтора repeat состоит из заголовка repeat, тела и условия окончания until.

 

Синтаксическая диаграмма для данного оператора выглядит следующим обра­зом:

Формат записи:

Repeat

<оператор>

<оператор>

Until

<условие окончания цикла>

Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит вы­ход из цикла.

Оператор повтора for

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

Оператор повтора for состоит из заголовка и тела цикла.

Синтаксическая диаграмма для данного оператора выглядит следующим обра­зом:

Как видно из диаграммы, он может быть представлен в двух форматах:

где S1 и S2 - выражения, определяющие соответственно начальное и конечное значения параметра цикла.

Тело цикла может быть простым или составным оператором. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все зна­чения параметра цикла от начального до конечного.

Заголовок оператора повтора for определяет:

диапазон изменения значений управляющей переменной (параметра цикла) и одновременно число повторений оператора, содержащегося в теле цикла;

 

направление изменения значения параметра цикла (возрастание -to или убывание - downto).

При первом обращении к оператору for вначале вычисляются выражения S1, S2 и осуществляется присваивание <параметр циклa>: = Sl.

После этого циклически повторяются следующие действия.

1. проверяется условие <параметр цикла>:< = S2.

2. если условие выполнено, то оператор for продолжает работу (выполняется оператор в теле цикла), если условие <параметр цикла>:< = S2 не выполнено, то оператор for завершает работу, и управление в программе передается на оператор, следующий за циклом.

3. значение управляющей переменной изменяется на +1 (to) или -1 (downto) и далее с п. 1. Обратите внимание, что шаг изменения управляющей переменной - единица.

На использование управляющей переменной (параметра цикла) в цикле for на­лагаются следующие ограничения.

1. в качестве параметра должна использоваться простая переменная, опи­санная в текущем блоке.

2. управляющая переменная должна иметь дискретный тип.

3. начальные и конечные значения диапазона должны иметь тип, совместимый с типом управляющей переменной. При этом допустим любой скалярный тип, кро­ме вещественного.

4. в теле цикла запрещается явное изменение значения управляющей перемен­ной (например, оператором присваивания).

 

5. после завершения оператора значение управляющей переменной становится неопределенным, если только выполнение оператора не было прервано оператором перехода.


 

Поиск по сайту

Голосование

Какую среду программирования вы используете чаще всего?
 

Посетители