a && b: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Undo revision 135725 by R3vo (talk))
Tag: Undo
Line 9: Line 9:
| Returns [[true]] only if both conditions are [[true]]. In case of the alternative syntax, [http://en.wikipedia.org/wiki/Lazy_evaluation#Control_structures lazy evaluation] is used (if left operand is [[false]], evaluation of the right side is skipped completely).
| Returns [[true]] only if both conditions are [[true]]. In case of the alternative syntax, [http://en.wikipedia.org/wiki/Lazy_evaluation#Control_structures lazy evaluation] is used (if left operand is [[false]], evaluation of the right side is skipped completely).


Identical to: a '''[[and]]''' b |DESCRIPTION=
{{Informative | This command is identical to the [[and]] command.}} |DESCRIPTION=
____________________________________________________________________________________________
____________________________________________________________________________________________


| a '''&&''' b |SYNTAX=
| booleanA [[a && b|&&]] booleanB |SYNTAX=
|p1= a: [[Boolean]] - Test condition or variable that returns [[Boolean]]. |PARAMETER1=
 
|p2= b: [[Boolean]] - Test condition or variable that returns [[Boolean]]. |PARAMETER2=
|p1= booleanA: [[Boolean]] - test condition or variable |PARAMETER1=
 
|p2= booleanB: [[Boolean]] - test condition or variable |PARAMETER2=
 
| [[Boolean]] |RETURNVALUE=
| [[Boolean]] |RETURNVALUE=
____________________________________________________________________________________________


|s2=  boolean [[a && b|&&]] code         (''Available since ArmA 2:OA v1.62'') |SYNTAX2=


|s2=  a '''&&''' {b}         (''Available since ArmA 2:OA v1.62.'') |SYNTAX=
|p21= boolean: [[Boolean]] - test condition or variable |PARAMETER21=
|p21= a: [[Boolean]] - Test condition or variable that returns [[Boolean]]. |PARAMETER1=
 
|p22= b: [[Boolean]] - Test condition or variable that returns [[Boolean]]. It is not evaluated if '''a''' returns as [[false]]. |PARAMETER2=
|p22= code: [[Code]] - code that once executed returns a [[Boolean]]. The code is not evaluated if '''a''' is [[false]]. |PARAMETER22=
|r2= [[Boolean]] |RETURNVALUE=
 
|r2= [[Boolean]] |RETURNVALUE2=
____________________________________________________________________________________________
____________________________________________________________________________________________


|x1= <code>[[if]] (([[alive]] [[player]]) && (_enemycount == 0)) then {[[hint]] "you win !"}</code> |EXAMPLE1=
|x1= <code>[[private]] _allEnemiesKilled = [[true]];
|x2= <code>[[if]] (([[count]] _array > 0) && {(_array [[select]] 0) == [[player]]}) then {[[hint]] "It works! Without lazy evaluation it would throw an error if array was empty."}</code> |EXAMPLE2=
[[if]] ([[alive]] [[player]] && _allEnemiesKilled) [[then]]
{
[[hint]] "you win !";
};</code> |EXAMPLE1=
 
|x2= <code>[[if]] (([[count]] _array > 0) && { (_array [[select]] 0) == [[player]] }) [[then]] {{cc|an error would be thrown without lazy evaluation}}
{
[[hint]] "It works!";
};</code> |EXAMPLE2=
 
|x3= <code>[[if]] (([[alive]] [[player]]) && { [[player]] [[setDamage]] 0.5; [[true]] }) [[then]] {{cc|valid '''as long as''' the code block returns a [[Boolean]]}}
{
[[hint]] "It works!";
};</code> |EXAMPLE3=
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[and]], [[or]], [[Operators]] |SEEALSO=
| [[and]], [[or]], [[Operators]] |SEEALSO=
|mp= no special considerations|=
}}
}}


Line 43: Line 60:


[[Category:Scripting Commands|#]]
[[Category:Scripting Commands|#]]
[[Category:Scripting Commands OFP 1.46|#]]
[[Category:Scripting Commands OFP 1.96|#]]
[[Category:Scripting Commands OFP 1.99|#]]
[[Category:Scripting Commands OFP 1.99|#]]
[[Category:Scripting Commands OFP 1.96|#]]
[[Category:Scripting Commands OFP 1.46|#]]
[[Category:Scripting Commands ArmA|#]]
[[Category:Scripting Commands ArmA|#]]
[[Category:Scripting Commands ArmA2|#]]
[[Category:Scripting Commands ArmA2|#]]
[[Category:Scripting Commands Arma 3|#]]
[[Category:Scripting Commands Arma 3|#]]
[[Category:Scripting Commands Take On Helicopters|#]]
[[Category:Command_Group:_Math|#]]
[[Category:Command_Group:_Math|#]]
[[Category:Command_Group:_Variables|#]]
[[Category:Command_Group:_Variables|#]]

Revision as of 16:51, 2 September 2019

Hover & click on the images for description

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 skipped completely).
This command is identical to the and command.
Groups:
Uncategorised

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         (Available since ArmA 2:OA v1.62)
Parameters:
boolean: Boolean - test condition or variable
code: Code - code that once executed returns a Boolean. The code is not evaluated if a is false.
Return Value:
Boolean

Examples

Example 1:
private _allEnemiesKilled = true; if (alive player && _allEnemiesKilled) then { hint "you win !"; };
Example 2:
if ((count _array > 0) && { (_array select 0) == player }) then // an error would be thrown without lazy evaluation { hint "It works!"; };
Example 3:
if ((alive player) && { player setDamage 0.5; true }) then // valid as long as the code block returns a Boolean { hint "It works!"; };

Additional Information

See also:
andorOperators

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

Bottom Section