while: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
m (Text replacement - "\|game([0-9]) ?= (.+) \|version([0-9]) ?= (.+) " to "|game$1= $2 |version$3= $4 ")
(43 intermediate revisions by 10 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 |= Syntax
|game4= arma2
|version4= 1.00


|p1= condition: [[Code]]
|game5= arma2oa
|version5= 1.50


| [[While Type]] |= Return value
|game6= tkoh
____________________________________________________________________________________________
|version6= 1.00
 
|x1= <code>[[while]] "a>b" '''[[do]]''' {a<nowiki>=</nowiki>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____________________________________________________________


| [[Control Structures]], [[waitUntil]] |= See also
|game7= arma3
|version7= 0.50


}}
|gr1= Program Flow


<h3 style="display:none">Notes</h3>
|descr= Repeats [[Code]] while condition is [[true]]. A part of [[while]] [[do]] construct.
<dl class="command_description">
<!-- Note Section BEGIN -->


<dd class="notedate">Posted on May 14, 2008
|s1= '''while''' condition
<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>
e.g. while {_a=_a+1; _a<10} do {...}


<dd class="notedate">Posted on January 2, 2012
|p1= condition: [[Code]]
<dt class="note">'''[[User:Lucky44|Lucky44]]'''
<dd class="note">Different than in IF statements, the condition in a WHILE loop needs to be curly braces, unless it has multiple conditions, as shown above. So this will be a problem: while (variable1 == "wait") do...  But this will work: while {variable1 == "wait"} do... <br>


|r1= [[While Type]]
 
|x1= <code>[[while]] {a < b} [[do]] {a = a + 1};</code>


<!-- Note Section END -->
|x2= A practical example: Repair all members of a group to such a level that they are able to stand up: <code>{
</dl>
    [[while]] {![[canStand]] [[Magic Variables|_x]] && [[alive]] [[Magic Variables|_x]]} [[do]] {
        [[Magic Variables|_x]] [[setDamage]] ([[damage]] [[Magic Variables|_x]] - 0.01);
    };
} [[forEach]] [[units]] [[group]] unitname;</code>


<h3 style="display:none">Bottom Section</h3>
|seealso= [[Control Structures]], [[waitUntil]], [[for]], [[do]]
}}


 
<dl class="command_description">
[[Category:Scripting Commands|WHILE]]
<dt></dt>
[[Category:Scripting Commands OFP 1.96|WHILE]]
<dd class="notedate">Posted on May 14, 2008</dd>
[[Category:Scripting Commands ArmA|WHILE]]
<dt class="note">[[User:Kronzky|Kronzky]]</dt>
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
<dd class="note">The boolean code that is used to evaluate the while condition can be preceded by code that executes a regular command.
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
<code>[[while]] {_a =_a + 1; _a < 10} [[do]] {...}</code>
[[Category:ArmA: Control Structures|WHILE]]
</dl>
[[Category:Command Group: Program Flow|WHILE]]
<dl class="command_description">
<dt></dt>
<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>

Revision as of 17:02, 3 May 2021

Hover & click on the images for description

Description

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

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