Изменение параметра при каждом выполнении цикла непосредственно производят машинные команды, реализующие оператор For. Попытка изменения параметра в теле цикла зачастую приводит к получению неправильных результатов, в ряде случаев - к зацикливанию программы.
Пример 2. Определить индекс первого отрицательного элемента в массиве
.
TypeAr = array[1..100] ofreal;
Var i,k,n : byte;
X : Ar;
Begin
Ввод n, X
k:=0;
For i:=1 to n do
If x[i]<0 then
Begin
k:=i; i:=n+1
End;
Writeln('k=',k);
В данном случае для принудительного завершения цикла использован оператор i:=n+1 вместо оператора Goto. Результат - зацикливание программы.