for do: Difference between revisions

From Bohemia Interactive Community
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 21:45, 4 June 2015

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
End of for command, starts cycle.
Groups:
Uncategorised

Syntax

Syntax:
forCommand do code
Parameters:
forCommand: For Type
code: Code
Return Value:
Anything

Examples

Example 1:
for "_x" from 20 to 10 step -2 do {..code..}

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])