Операторы итерационных циклов
Формат оператора итерационного цикла с предусловием:
WHILE <усл> DO ( S1; S2; ... ; Sn );
где
- WHILE - первое ключевое слово, в переводе означает "пока";
- <усл> - условие естественного окончания цикла, записанное в виде логического выражения или операции отношения;
- DO - второе ключевое слово, в переводе означает "выполняем";
- (S1;S2;...;Sn) - составной оператор, тело цикла.
Оператор работает следующим образом: до начала исполнения операторов тела цикла происходит проверка условия выполнения цикла (отсюда взято название цикла- "с предварительной проверкой условия"). Если оно не нарушено, тело цикла исполняется. Но может быть, что при неправильном составлении программы, <усл> не выполняется сразу, следовательно, тело цикла тоже ни разу не будет выполнено. Работа продолжается, пока выполняется <усл>.
Формат оператора итерационного цикла с постусловием:
REPEAT S1; S2; ... ; Sn UNTIL <усл>;
где
- REPEAT - первое ключевое слово, в переводе означает "повторять";
- S1; S2; ... ; Sn - составной оператор, тело цикла. В этом составном операторе слова BEGIN ... END не нужны, поскольку считается, что слова REPEAT ...UNTIL сами являются операторными скобками;
- UNTIL - второе ключевое слово, в переводе означает "до тех пор, пока";
- <усл> - условие естественного окончания цикла, записанное в виде логического выражения или операции отношения.
Оператор работает следующим образом: после первого выполнения операторов тела цикла происходит проверка условия окончания цикла (отсюда взято название цикла-" с последующей проверкой условия"). Если оно не выполняется, управление передаётся на начало цикла и работа продолжается до выполнения <усл>.
При всей несхожести этих операторов они выдвигают одни и те же требования к организации вычислительного процесса:
- перед началом работы цикла управляющая переменная должна получить нужное начальное значение;
- условие естественного окончания цикла - " <усл> " - необходимо составить таким образом, чтобы оно обеспечивало многократное его повторение;
- внутри цикла должен находиться оператор, изменяющий значения переменной цикла так, что рано или поздно <усл> выхода из цикла будет достигнуто.
нет
да
|
да
а) цикл WHILE-DO ; б) цикл REPEAT-UNTIL