a or b: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "(\|[pr][0-9]+ *= *[^- ]*) *- *T([a-z ])" to "$1 - t$2")
 
(48 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| ofp |Game name=
|sortKey= #


|1.00|Game version=
|game1= ofp
|version1= 1.00


|gr1= Math |=GROUP1
|game2= ofpe
|gr2= Variables |=GROUP2
|version2= 1.00
____________________________________________________________________________________________


| Returns [[true]] only if one or 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 [[true]], evaluation of the right side is skipped completely).
|game3= arma1
|version3= 1.00


Identical to: a [[or]] b |DESCRIPTION=
|game4= arma2
____________________________________________________________________________________________
|version4= 1.00


| a '''<nowiki>||</nowiki>''' b |SYNTAX=
|game5= arma2oa
|p1= a: [[Boolean]] - Test condition or variable that returns [[Boolean]]. |PARAMETER1=
|version5= 1.50
|p2= b: [[Boolean]] - Test condition or variable that returns [[Boolean]]. |PARAMETER2=
| [[Boolean]] |RETURNVALUE=


|game6= tkoh
|version6= 1.00


|game7= arma3
|version7= 0.50


|s2= a '''<nowiki>||</nowiki>''' {b} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(''Available since ArmA 2:OA v1.62.'') |SYNTAX2=
|gr1= Math


|p21= a: [[Boolean]] - Test condition or variable that returns [[Boolean]]. |PARAMETER21=
|gr2= Variables
|p22= b: [[Boolean]] - Test condition or variable that returns [[Boolean]]. It is not evaluated if '''a''' returns as [[true]]. |PARAMETER2=
|r2= [[Boolean]] |RETURNVALUE2=____________________________________________________________________________________________


|x1= <code>[[if]] ((OBJ1) <nowiki>||</nowiki> (_enemycount == 0)) then {[[hint]] "you win !"}</code> |EXAMPLE1=
|descr= Returns [[true]] if one or both conditions are [[true]]. In case of the alternative syntax, {{Link|https://en.wikipedia.org/wiki/Lazy_evaluation#Control_structures|lazy evaluation}} is used. That means that if left operand is [[true]], evaluation of the right side is skipped completely.
|x2= <code>[[if]] (([[count]] _array == 0) <nowiki>||</nowiki> {(_array [[select]] 0) != [[player]]}) then {[[hint]] "It works! Without lazy evaluation it would throw an error if array was empty."}</code> |EXAMPLE2=
____________________________________________________________________________________________


| [[or]], [[and]], [[Operators]] |SEEALSO=
|alias= [[or]]
|mp= no special considerations|=
 
}}
|s1= a [[a or b|{{!}}{{!}}]] b
 
|p1= a: [[Boolean]] - test condition or variable
 
|p2= b: [[Boolean]] - test condition or variable
 
|r1= [[Boolean]]
 
|s2= a [[a or b|{{!}}{{!}}]] b
 
|s2since= arma2oa 1.62
 
|p21= a: [[Boolean]] - test condition or variable
 
|p22= b: [[Code]] - code that returns [[Boolean]]. It is not evaluated if ''a'' returns [[true]]
 
|r2= [[Boolean]]


<h3 style="display:none">Notes</h3>
<dl class="command_description">
<!-- Note Section BEGIN -->


<!-- Note Section END -->
|x1= <sqf>if (OBJ1 || _enemycount == 0) then { hint "you win !" };</sqf>
</dl>


<h3 style="display:none">Bottom Section</h3>
|x2= <sqf>
if (count _array == 0 || { (_array select 0) != player }) then
{
hint "It works! Without lazy evaluation it would throw an error if array was empty.";
};
</sqf>


[[Category:Scripting Commands|#]]
|seealso= [[or]] [[and]] [[Operators]]
[[Category:Scripting Commands OFP 1.99|#]]
}}
[[Category:Scripting Commands OFP 1.96|#]]
[[Category:Scripting Commands OFP 1.46|#]]
[[Category:Scripting Commands Armed Assault|#]]
[[Category:Scripting Commands Arma 2|#]]
[[Category:Scripting Commands Arma 3|#]]

Latest revision as of 15:51, 8 November 2023

Hover & click on the images for description

Description

Description:
Returns true if one or both conditions are true. In case of the alternative syntax, lazy evaluation is used. That means that if left operand is true, evaluation of the right side is skipped completely.
Alias:
or
Groups:
MathVariables

Syntax

Syntax:
a || b
Parameters:
a: Boolean - test condition or variable
b: Boolean - test condition or variable
Return Value:
Boolean

Alternative Syntax

Syntax:
a || b
Parameters:
a: Boolean - test condition or variable
b: Code - code that returns Boolean. It is not evaluated if a returns true
Return Value:
Boolean

Examples

Example 1:
if (OBJ1 || _enemycount == 0) then { hint "you win !" };
Example 2:
if (count _array == 0 || { (_array select 0) != player }) then { hint "It works! Without lazy evaluation it would throw an error if array was empty."; };

Additional Information

See also:
or and Operators

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