do: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (code type)
m (Some wiki formatting)
 
(38 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| ofpr |= Game name
|game1= ofp
|version1= 1.85


|1.85|= Game version
|game2= ofpe
____________________________________________________________________________________________
|version2= 1.00


| Repeat '''[[Code]]''' while condition is [[true]]. |= Description
|game3= arma1
____________________________________________________________________________________________
|version3= 1.00


| ''while'' {condition} '''do''' ''{[[Code]]}'' |= Syntax
|game4= arma2
|version4= 1.00


|p1 = while: [[While Type]]
|game5= arma2oa
|p2= condition : [[Boolean]] {[[Code]]}
|version5= 1.50
|p3 =[[Code]]


|game6= tkoh
|version6= 1.00


| [[Nothing]] |= Return value
|game7= arma3
____________________________________________________________________________________________
|version7= 0.50
| x1 = <code>[[while]] {a>b} '''do''' {a<nowiki>=</nowiki>a+1} </code>
| [[Control Structures]] |= See also


}}
|gr1= Program Flow
 
|descr= Executes ''code''. Used as part of a construct, such as [[while]], [[with]], [[for]] and [[switch]]. The ''code'' is always executed in [[missionNamespace]] unless [[do]] is used with [[with]] as an argument.
 
|s1= construct [[do]] code


<h3 style="display:none">Notes</h3>
|p1= construct: [[While Type]] ([[while]]), [[With Type]] ([[with]]), [[For Type]] ([[for]]), [[Switch Type]] ([[switch]])
<dl class="command_description">
<!-- Note Section BEGIN -->
'''Note (Applies to 1.85-1.97):''' Maximum repeat count for loop is 10000.


If condition is still [[true]] after loop was repeated 10000 times, loop is terminated and error message is shown.
|p2= code: [[Code]]


|r1= [[Anything]]


A more practical example:
|x1= <sqf>
while { b > a } do
{
a = a + 1;
};
</sqf>


To repair all the members of a group to such a level that they are all able to stand up:<br>
|x2= <sqf>
{[[while]] {[[not]] [[canStand]] _x} [[do]] {_x [[setDammage]] ([[getDammage]] _x) - 0.01}} [[forEach]] units [[group]] ''unitname''
with uiNamespace do
{
MyUIVar = MyUIVar + 5;
};
</sqf>


<!-- Note Section END -->
|x3= <sqf>
</dl>
for "_i" from 1 to 10 do
{
systemChat str _i;
sleep 0.5;
};
</sqf>


<h3 style="display:none">Bottom Section</h3>
|x4= <sqf>
switch (50) do
{
case 25: { hint "25" };
case 50: { hint "50" }; // hints "50"
case 75: { hint "75" };
default { hint "nope" };
};
</sqf>


[[Category:Scripting Commands|DO]]
|seealso= [[Control Structures]]
[[Category:Scripting Commands OFP 1.96|DO]]
}}
[[Category:Scripting Commands ArmA|DO]]
[[Category:ArmA: Control Structures|DO]]
[[Category:Command Group: Program Flow|DO]]

Latest revision as of 15:17, 11 May 2022

Hover & click on the images for description

Description

Description:
Executes code. Used as part of a construct, such as while, with, for and switch. The code is always executed in missionNamespace unless do is used with with as an argument.
Groups:
Program Flow

Syntax

Syntax:
construct do code
Parameters:
construct: While Type (while), With Type (with), For Type (for), Switch Type (switch)
code: Code
Return Value:
Anything

Examples

Example 1:
while { b > a } do { a = a + 1; };
Example 2:
with uiNamespace do { MyUIVar = MyUIVar + 5; };
Example 3:
for "_i" from 1 to 10 do { systemChat str _i; sleep 0.5; };
Example 4:
switch (50) do { case 25: { hint "25" }; case 50: { hint "50" }; // hints "50" case 75: { hint "75" }; default { hint "nope" }; };

Additional Information

See also:
Control Structures

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