[fpc-pascal] Illegal counter variable?
James Richters
james at productionautomation.net
Mon Sep 9 14:38:40 CEST 2019
>That page only talks about assigning the loop var *inside* the loop, which is forbidden.
You can re-assign the loop variable if you are in {$Mode TP} it works perfectly fine to re-assign the for variable inside the loop, and I use that extensively, I have TP units specifically so I can do that. I really don't understand why it's forbidden if you aren't in TP mode... programmers can take care of their own variables and don't need to be protected from themselves. I have good reasons to want to change the for loop variable and never have a problem with it. I know there are ways around it, but I prefer to just modify the for variable... it can be very powerful.
This works great!
{$MODE TP}
Var
I:Byte;
Begin
I:=57;
For I := I to 100 do
Begin
If I=87 then
I:=95;
Write(I,' ');
End;
End.
Output:
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 95 96 97 98 99 100
James
More information about the fpc-pascal
mailing list