while: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (rm. obsolete note - code is not meant as a practical example)
m (Text replacement - "Category:Scripting Commands ArmA2" to "Category:Scripting Commands Arma 2")
(28 intermediate revisions by 13 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{Command|Comments=
____________________________________________________________________________________________
____________________________________________________________________________________________


| ofpr |= Game name
| ofpr |Game name=


|1.85|= Game version
|1.85|Game version=
____________________________________________________________________________________________
____________________________________________________________________________________________


| Repeat '''[[Code]]''' while condition is [[true]]. |= Description
| Repeats [[Code]] while condition is [[true]]. A part of [[while]] [[do]] construct. |Description=
____________________________________________________________________________________________
____________________________________________________________________________________________


| '''while''' condition |= Syntax
| '''while''' condition |Syntax=


|p1= condition: [[Code]]
|p1= condition: [[Code]]


| [[While Type]] |= Return value
| [[While Type]] |Return value=
____________________________________________________________________________________________
____________________________________________________________________________________________
   
   
|x1= <code>[[while]] "a>b" '''[[do]]''' {a<nowiki>=</nowiki>a+1} </code>
|x1= <code>[[while]] {a < b} [[do]] {a = a + 1};</code>
|x2=A practical example: Repair all members of a group to such a level that they are able to stand up: <code><nowiki>{</nowiki><br>&nbsp;&nbsp;while <nowiki>{</nowiki>([[not]] [[canStand]] _x) [[and]] ([[alive]] _x)<nowiki>}</nowiki> [[do]] <nowiki>{</nowiki><br>&nbsp;&nbsp;&nbsp;&nbsp;_x [[setDammage]] ([[getDammage]] _x) - 0.01;<br>&nbsp;&nbsp;<nowiki>};</nowiki><br><nowiki>}</nowiki> [[forEach]] units [[group]] unitname; </code> |= Example 2____________________________________________________________
|x2= A practical example: Repair all members of a group to such a level that they are able to stand up: <code>{
 
    [[while]] {![[canStand]] [[Magic Variables|_x]] && [[alive]] [[Magic Variables|_x]]} [[do]] {
| [[Control Structures]] |= See also
        [[Magic Variables|_x]] [[setDamage]] ([[damage]] [[Magic Variables|_x]] - 0.01);
    };
} [[forEach]] [[units]] [[group]] unitname;</code> |Example 2=
____________________________________________________________


| [[Control Structures]], [[waitUntil]], [[for]], [[do]] |See also=
}}
}}


Line 28: Line 32:
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->


<dd class="notedate">Posted on May 14, 2008</dd>
<dd class="notedate">Posted on May 14, 2008
<dt class="note">'''[[User:Kronzky|Kronzky]]'''</dt>
<dt class="note">[[User:Kronzky|Kronzky]]
<dd class="note">The boolean code that's used to evaluate the while condition can be preceded by code that executes a regular command.<br>
<dd class="note">The boolean code that's used to evaluate the while condition can be preceded by code that executes a regular command.<br>
e.g. while {_a=_a+1; _a<10} do {...}</dd>
<code>[[while]] {_a =_a + 1; _a < 10} [[do]] {...}</code>
 
<!-- Note Section END -->
<!-- Note Section END -->
</dl>
</dl>
Line 39: Line 42:




[[Category:Scripting Commands|WHILE]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|WHILE]]
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA|WHILE]]
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:ArmA: Control Structures|WHILE]]
[[Category:Scripting Commands ArmA|{{uc:{{PAGENAME}}}}]]
[[Category:Command Group: Program Flow|WHILE]]
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
 
[[Category:Command Group: Program Flow|{{uc:{{PAGENAME}}}}]]
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on August 30, 2014 - 08:12 (UTC)</dd>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
In [[Scheduler#Unscheduled_Environment|non-scheduled environment]], [[while]] [[do]] loop is limited to 10,000 iterations, after which it exits even if condition is still [[true]]. In [[Scheduler#Unscheduled_Environment|scheduled environment]] no such limit exists.
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Revision as of 18:59, 10 January 2020

Hover & click on the images for description

Description

Description:
Repeats Code while condition is true. A part of while do construct.
Groups:
Uncategorised

Syntax

Syntax:
while condition
Parameters:
condition: Code
Return Value:
While Type

Examples

Example 1:
while {a < b} do {a = a + 1};
Example 2:
A practical example: Repair all members of a group to such a level that they are able to stand up: { while {!canStand _x && alive _x} do { _x setDamage (damage _x - 0.01); }; } forEach units group unitname;

Additional Information

See also:
Control StructureswaitUntilfordo

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 May 14, 2008
Kronzky
The boolean code that's used to evaluate the while condition can be preceded by code that executes a regular command.
while {_a =_a + 1; _a < 10} do {...}

Bottom Section

Posted on August 30, 2014 - 08:12 (UTC)
Killzone Kid
In non-scheduled environment, while do loop is limited to 10,000 iterations, after which it exits even if condition is still true. In scheduled environment no such limit exists.