Оператор повтора While
Оператор While является самым мощным оператором повтора. Любой цикл, построенный с помощью For или Repeat, может быть построен и с помощью While.
Формат
While <выражение> Do <оператор>;
Этот оператор аналогичен оператору Repeat, но проверка условия выполнения тела цикла производится в самом начале оператора. Здесь выражение представляет собой условие, при котором цикл повторяется. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, то есть условие не выполняется, происходит выход из цикла и переход к первому после While оператору. Если перед первым выполнением цикла значение выражения было False, тело цикла вообще не выполняется и происходит переход к следующему оператору.
Блок-схема оператора Whileпредставлена на рис. 4.
Вход
Выход
Рисунок4 – Блок-схема оператора While
| Эта структура обеспечивает многократное повторение некоторого действия А, называемого телом цикла до тех пор, пока выполняется условие Р (условие повторения цикла). Если после очередного повторения действия А условие Р не выполняется, происходит выход из цикла. Цикл, который был описан для оператора REPEAT, в случае с WHILE будет иметь вид: i:=4; While i<=7 do Begin Write(i:2); i:=i+1 End; |
Как и в операторе Repeat, программист сам должен позаботиться об изменении переменных, определяющих условие выхода, иначе цикл получится бесконечным. Выйти из цикла можно с помощью оператора goto, минуя вычисление выражения условия.
Для начинающих программистов использование оператора While вызывает гораздо меньшее число ошибок, чем применение оператора Repeat, поэтому при прочих равных условиях лучше пользоваться оператором While.
Таким образом, можно выделить следующие отличия While от Repeat:
1. Условие ставится в начале цикла.
2. Это условие, при котором цикл повторяется.
3. Необходимость использования операторных скобок Begin... End, если в цикле выполняется более одного оператора.
4. Выход из цикла будет произведен тогда, когда условие, стоящее после While, не будет выполняться.
Рассмотренные операторы дают возможность описывать алгоритмы решения различных задач, которые представляют собой комбинацию линейных, разветвляющихся и циклических участков. Линейные участки, которые не содержат разветвлений и циклов, реализуются обычно с помощью оператора присваивания, операторов ввода-вывода.
Разветвления в программе реализуются с помощью оператора If, а циклические участки – с помощью одного из операторов цикла – For, While и Repeat. Использование оператора goto для этих целей нежелательно, так как это нарушает логику программы.
Лекция 5
Дата добавления: 2019-02-07; просмотров: 495;