Difference between revisions of "while"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
 
(50 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 the given 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]]
  
<!-- Note Section END -->
+
|x1= <code>[[while]] {a < b} [[do]] {a = a + 1};</code>
</dl>
 
  
<h3 style="display:none">Bottom Section</h3>
+
|x2= A practical example: Repair all members of a group to such a level that they are able to stand up:
 +
<code>{
 +
[[if]] ([[alive]] [[Magic Variables#x|_x]]) [[then]]
 +
{
 +
[[while]] { [[not]] [[canStand]] [[Magic Variables#x|_x]] } [[do]]
 +
{
 +
[[Magic Variables|_x]] [[setDamage]] ([[damage]] [[Magic Variables|_x]] - 0.01);
 +
};
 +
};
 +
} [[forEach]] [[units]] [[group]] unitname;</code>
  
 +
|seealso= [[Control Structures]], [[waitUntil]], [[for]], [[do]]
 +
}}
  
[[Category:Scripting Commands|WHILE]]
+
{{Note
[[Category:Scripting Commands OFP 1.96|WHILE]]
+
|user= Kronzky
[[Category:Scripting Commands ArmA|WHILE]]
+
|timestamp= 20080514084000
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
+
|text= 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]]
+
}}
[[Category:Command Group: Program Flow|WHILE]]
+
 
 +
{{Note
 +
|user= Killzone Kid
 +
|timestamp= 20140830081200
 +
|text= 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.
 +
}}

Latest revision as of 21:28, 21 September 2021

Hover & click on the images for description

Description

Description:
Repeats Code while the given 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: { if (alive _x) then { while { not canStand _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 - 08:40 (UTC)
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 Aug 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.