for do: Difference between revisions
Jump to navigation
Jump to search
m (see also) |
No edit summary |
||
Line 36: | Line 36: | ||
[[Category:ArmA: Control Structures|DOSWITCH]] | [[Category:ArmA: Control Structures|DOSWITCH]] | ||
[[Category:Command Group: Program Flow|DOSWITCH]] | [[Category:Command Group: Program Flow|DOSWITCH]] | ||
<!-- CONTINUE Notes --> | |||
<dl class="command_description"> | |||
<dd class="notedate">Posted on June 4, 2015 - 19:45 (UTC)</dd> | |||
<dt class="note">[[User:Nickorr|Nickorr]]</dt> | |||
<dd class="note"> | |||
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. <br/> | |||
Example, that won't work correctly: | |||
<code><nowiki>_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; | |||
}; | |||
};</nowiki></code> | |||
(Here the <tt><nowiki>_i = 9</nowiki></tt> step will still be checked by the cycle, which will lead to "out of the array range" error.) <br/> | |||
This code will work correctly: | |||
<code><nowiki>_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; | |||
}; | |||
};</nowiki></code> | |||
(The last step here will be <tt><nowiki>_i = 8</nowiki></tt> with array looking like this: <tt><nowiki>[1,2,4,5,6,7,8,9,10]</nowiki></tt>) | |||
</dd> | |||
</dl> | |||
<!-- DISCONTINUE Notes --> |
Revision as of 20:45, 4 June 2015
Description
- Description:
- End of for command, starts cycle.
- Groups:
- Uncategorised
Syntax
Examples
Additional Information
- See also:
- Control Structuresfor forspecwhile
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
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])