Операторы повтора указывают на то, что определенную группу операторов следует выполнить несколько раз. Если количество повторных выполнений заданной группы операторов известно заранее, то в такой ситуации вполне подходит оператор FOR.
Если количество повторов неизвестно, то следует использовать операторы while или repeat.
Оператор For
Оператор for указывает на то, что составной оператор следует выполнять повторно до тех пор, пока не будут перебраны все значения управляющей переменой, задаваемые прогрессией. Прогрессия может быть возрастающей: to или убывающей: downto. Вычисления проводятся до тех пор, пока управляющая не примет конечное значение /задаваемое в операторе/.
Управляющая переменная, начальное и конечное значение должны быть одного и того же типа. Допускаются все простые типы, то есть все скалярные типы, за исключением вещественного.
Примеры:
for i := i1 to i2 do S; цикл может не выполняться, если i1>i2
for i := i1 dowto i2 do S; цикл может не выполняться, если i1<i2.
Пример. Вычислить сумму элементов вектора Х.
Program summa;
Var S: Real;
i, n: Integer;
x: array[1..100] of real;
begin
write(‘n=’);readln(n);
for i:=1 to n do begin
write (‘x[‘,i:2, ‘]=’);
readln (x[i]); end;
S:=0.0;
for i:=1 to n do S:=S+x[i];
writeln (‘сумма=’, S);
End.
Заметим, что составной оператор, повторно выполняемый при помощи оператора for, не должен содержать операторов, присваивающих значения управляющей переменной. Если необходимо завершить повторное выполнение составного оператора прежде, чем управляющая переменная примет конечное значение, то можно воспользоваться оператором goto. В таких случаях лучше воспользоваться оператором while или repeat.
После завершения выполнения операторов for значение управляющей переменной равно конечному значению, если же это не так, то значит цикл не был выполнен вообще. В этих случаях никакие значения управляющей переменной вообще не присваивались.