a && b: Difference between revisions
|  (Added lazy evaluation syntax) | Lou Montana (talk | contribs)  m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>") | ||
| (78 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
| {{ | {{RV|type=command | ||
| |  | |sortKey= # | ||
| |1.00 | |game1= ofp | ||
| |version1= 1.00 | |||
| |  | |game2= ofpe | ||
| |version2= 1.00 | |||
| |game3= arma1 | |||
| |version3= 1.00 | |||
| |  | |game4= arma2 | ||
| | | |version4= 1.00 | ||
| |game5= arma2oa | |||
| |version5= 1.50 | |||
| | | |game6= tkoh | ||
| | | |version6= 1.00 | ||
| | | |game7= arma3 | ||
| | | |version7= 0.50 | ||
| |  | |gr1= Variables | ||
| }} | |gr2= Math | ||
| |descr= Returns [[true]] only if both conditions are [[true]]. | |||
| In case of the alternative syntax, {{Link|https://en.wikipedia.org/wiki/Lazy_evaluation#Control_structures|lazy evaluation}} is used - if left operand is [[false]], evaluation of the right side is ignored. | |||
| |alias= [[a and b]] | |||
| |s1= booleanA [[a && b|&&]] booleanB | |||
| |p1= booleanA: [[Boolean]] - test condition or variable | |||
| |p2= booleanB: [[Boolean]] - test condition or variable | |||
| |r1= [[Boolean]] | |||
| |s2= boolean [[a && b|&&]] code | |||
| |s2since= arma2oa 1.62 | |||
| |p21= boolean: [[Boolean]] - test condition or variable | |||
| |p22= code: [[Code]] - code that once executed returns a [[Boolean]]. The code is not evaluated if '''boolean''' is [[false]]. | |||
| |r2= [[Boolean]] | |||
| |x1= <sqf> | |||
| private _allEnemiesKilled = true; | |||
| < | if (alive player && _allEnemiesKilled) then | ||
| { | |||
| 	hint "you win !"; | |||
| }; | |||
| </sqf> | |||
| <! | |x2= <sqf> | ||
| </ | if ((count _array > 0) && { (_array select 0) == player }) then // an error would be thrown without lazy evaluation | ||
| { | |||
| 	hint "It works!"; | |||
| }; | |||
| </sqf> | |||
| < | |x3= <sqf> | ||
| if ((alive player) && { player setDamage 0.5; true }) then // valid AS LONG AS the code block returns a Boolean | |||
| { | |||
| 	hint "It works!"; | |||
| }; | |||
| </sqf> | |||
| |seealso= [[and]] [[or]] [[Operators]] | |||
| [[ | }} | ||
| [[ | |||
| [[ | |||
Latest revision as of 19:42, 3 September 2024
Description
- Description:
- Returns true only if both conditions are true. In case of the alternative syntax, lazy evaluation is used - if left operand is false, evaluation of the right side is ignored.
- Alias:
- a and b
- Groups:
- VariablesMath
Syntax
- Syntax:
- booleanA && booleanB
- Parameters:
- booleanA: Boolean - test condition or variable
- booleanB: Boolean - test condition or variable
- Return Value:
- Boolean
Alternative Syntax
- Syntax:
- boolean && code
- Parameters:
- boolean: Boolean - test condition or variable
- code: Code - code that once executed returns a Boolean. The code is not evaluated if boolean is false.
- Return Value:
- Boolean
Examples
- Example 1:
- Example 2:
- Example 3:
Additional Information
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
Categories: 
- Scripting Commands
- Introduced with Operation Flashpoint version 1.00
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Variables
- Command Group: Math
 
	





