From Bohemia Interactive Community
Notes
- Posted on June 4, 2015 - 19:45 (UTC)
- Nickorr
-
Dont use this notation if you plan to change the cycle ranges dynamically. The range values are checked only before the cycle started. Use for_forspec instead.
Example, that won't work correctly:
_xy = [1,2,3,4,5,6,7,8,9,10];
for "_i" from 0 to (count _xy - 1) do {
if ( _xy select _i == 3 ) then {
_xy deleteAt _i;
_i = _i - 1;
};
};
(Here the _i = 9 step will still be checked by the cycle, which will lead to "out of the array range" error.)
This code will work correctly:
_xy = [1,2,3,4,5,6,7,8,9,10];
for [{_i=1},{_i<=(count xy - 1)},{_i=_i+1}] do {
if ( _xy select _i == 3 ) then {
_xy deleteAt _i;
_i = _i - 1;
};
};
(The last step here will be _i = 8 with array looking like this: [1,2,4,5,6,7,8,9,10])