Читайте также: |
|
Трубку вы схватите как раз тогда, когда в ней зазвучат сигналы отбоя.
Из законов Мэрфи.
Другая разновидность цикла отличается тем, что условие проверяется не до, а после выполнения тела цикла. Поэтому цикл с постусловием обязательно выполняется как минимум один раз. Именно поэтому он не чаще всего не годится для решения вычислительных задач: возникает лишняя итерация (проход) цикла, и, складывая 1+2+3, можно получить ответ 10=1+2+3+4.
Цикл с постусловием записывается оператором REPEAT.. UNTIL. Его общий вид таков:
REPEAT
оператор1
…
оператор n
UNTIL условие;
Тело цикла составляют операторы, стоящие между REPEAT и UNTIL. Дополнительные BEGIN..END здесь не нужны – синтаксис оператора и так позволяет помещать в тело цикла несколько операторов.
Важная особенность цикла REPEAT состоит в том, что его условие является условием прекращения цикла. Цикл прерывается и программа идет дальше, как только условие становится истинным. Напомним, что в цикле WHILE все наоборот- там цикл прерывается, как только условие становится ложным.
Цикл с постусловием идеально подходит для организации контроля корректности вводимых пользователем данных. Например, мы ожидаем ввода числа от 1 до 3 (скажем, при выборе, куда вводить информацию: на экран или в файл). Как обезопасить себя на тот случай, если гнусный пользователь возьмет и введет 4 или 0? Очень просто:
VAR a:BYTE;
BEGIN
…
REPEAT
a:=StrToInt(LabeledEidit1.Text)
UNTIL (a>=1) AND (a<=3);
После ввода числа проверяется условие его нахождения в интервале [1;3]. Если введенное число не попадает в указанный интервал, условие будет ложным и цикл повторится до тех пор, пока условие не окажется истинным.
Обозначение цикла с постусловием на блок-схемах показано на Рис. 2.
Рис. 2. Обозначение цикла с постусловием на блок-схемах.
Дата добавления: 2015-07-11; просмотров: 210 | Нарушение авторских прав