Turbo Pascal (Borland Pascal) 7.0. Руководство пользователя


Операторы повтора (цикла) - часть 2



Общий вид:
While do

;

Тело цикла – простой или составной оператор или операторы. Если операторов в теле цикла несколько, то тело цикла заключается в операторные скобки begin…end.

Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат – «истина», тело цикла выполняется и снова вычисляется выражение условия. Если результат–«ложь», происходят выход из цикла и переход к первому после while оператору.


Пример. Найти сумму 10 произвольных чисел.

Program z; Const N=10; Var k, x, s: integer; Begin k:=0; s:=0; {k- количество введенных чисел} while k < n do begin k:=k+1; write(‘Введите число’); readln(x); s:=s+x; end; writeln(‘Сумма чисел равна’, s); end.

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

Общий вид:
Repeat


. . . . .


until

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

Пример. Составить программу, которая вводит и суммирует целые числа. Если введено значение 999, то на экран выводится результат суммирования.

Program s; Var x, s:integer; Begin S:=0; Repeat Write(‘Ввести число’); Readln(x); If x<>999 then s:=s+x; Until x=999; Writeln(‘Сумма введенных чисел’, s); End.





- Начало -  - Назад -  - Вперед -