Оператор цикла WHILE организует выполнение одного оператора неизвестное число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логической операции проверяется в начале каждой итерации, тело цикла может не выполняться ни разу.
Структура оператора
while s do
instruction;
s - логическое выражение, истинность которого проверяется в начале каждой итерации;
instruction – выполняемый оператор цикла.
Структура оператора
while <условие> do <оператор>;
| Выражение логического типа
| произвольный оператор
|
Работа оператора WHILE
Если выражение s(<условие>) имеет значение True, то выполняется оператор, затем выполняется выражение S, его проверка повторяется. Если <условие> имеет значение False, оператор While прекращает свою работу.
Пример
program EXAMPLE7; {Найти все делители
целого положительного числа,
кроме 1 и его самого}
var
x, half, divider, i: integer;
begin
repeat
write('Введите число > 0');
readln(x);
if x<=0 then
writeln ('Неправильный ввод');
until x>0;
half:=x div 2;
divider:=2;
i:=0;
while divider<=half do
begin
if x mod divider=0 then
begin
inc(i);
writeln(i,'-й делитель равен:',divider);
end;
inc(divider);
end;
if i=0 then
writeln ('Делителей нет');
writeln ('Конец решения');
end.
Procedure Inc (var x [; n: longint]);
Увеличивает значение переменной;
x переменная порядкового типа;
n – величина, на которую увеличивается x.