Nie, powinna się wykonać 10
razy, bo w pętli for
licznik jest ustawiany raz (a raczej ilość iteracji); Jeśli chcesz manipulować licznikiem to skorzystaj z pętli while
lub repeat
;
EDIT: Jeśli koniecznie chcesz manipulować licznikiem to możesz pobrać do niego wskaźnik i wtedy zmieniać jego wartość, ale nie powinno się tego robić - są przecież inne pętle;
EDIT1: A niech stracę:
var
iCounter: Byte;
PCounter: PByte;
begin
for iCounter := 0 to 9 do
begin
WriteLn('iCounter: ', iCounter);
if iCounter = 2 then
begin
PCounter := @iCounter;
PCounter^ := 8;
end;
end;
ReadLn;
end.
W tej pętli wyświetlany jest stan licznika, a następnie jeśli równa się 2
- zostaje pobrany jego adres oraz przypisana nowa wartość; Dzięki temu na wyjściu dostaniemy:
iCounter: 0
iCounter: 1
iCounter: 2
iCounter: 9
Równie dobrze można w ten sposób oprogramować nieskończoną pętlę for
, ale tego typu zabiegi trzeba traktować jako ciekawostkę, nie jako technikę wartą zastosowania.