Перед прочтением данной статьи, ознакомьтесь с общей теорией о циклах в Паскале.
Синтаксис
Формат оператора цикла с предусловием на языке Паскаль:
while <логическое_выражение> do
<один_оператор>
Здесь внутренний оператор <один_оператор> выполняется в цикле до тех пор, пока уловие продолжения цикла <логическое_выражение> истинно true. Если же <логическое_выражение> становится ложным false, то цикл прекращает функционировать и выполняется оператор, следующий за оператором while.
Подробнее о том, как составлять сложные логические выражения можно узнать тут.
Если в теле цикла необходимо выполнить несколько операторов, то эту группу следует объединить в один составной оператор с помощью операторных скобок begin .. end;
while <логическое_выражение> do
begin
<один_оператор>
<второй_оператор>
. . .
<последний_оператор>
end;
Пример
Вычислить среднее арифметическое последовательности чисел произвольной длинны.
Каждый раз, когда вводиться число N, счетчик количества чисел увеличивается на единицу.
Конец ввода определяется вводом цифры 0.
program srednee;
var
N, S: real;
i: integer;
begin
S := 0;
i := 0;
write('Введите 1 число: ');
readln('N');
while (N <> 0) do
begin
S := S + N;
i := i + 1;
writeln('Введите ', i+1 ,' число:');
readln(N);
end;
writeln('Среднее значение: ', i,' чисел');
writeln('равно ', S/i);
end.
Разбор кода
Разберем именно код цикла
while (N <> 0) do
begin
S := S + N;
i := i + 1;
writeln('Введите ', i+1 ,' число:');
readln(N);
end;
Перед циклом пользователь ввел значение для переменной N. Теперь программа проверяет логическое выражение N <> 0 и если введенное значение не равно нулю, то выполняется код в составном операторе begin ... end;.
В теле цикла пользователь вводит новое значение для переменной N, после чего снова проверяется логическое выражение N <> 0 и если на этот раз введенное значение является нулем, то программа выходит из цикла, в данном случае переходит к оператору вывода writeln
Задание для практики будет прикреплено к одной из следующих статей, там вы сможете на одном задание использовать сразу три вида цикла и посмотрите наглядно, чем они отличаются.