then: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|game([0-9]) ?= (.+) \|version([0-9]) ?= (.+) " to "|game$1= $2 |version$3= $4 ")
(Fix description and examples)
Line 24: Line 24:
|gr1= Program Flow
|gr1= Program Flow


|descr= First or second element of array is executed depending on result of [[if]] condition. Result of the expression executed is returned as a result. {{Feature|informative|Variables declared inside the '''code''' block are private to that block. If you need to use the variables outside of the block, declare them '''before''' the {{ic|[[if]] (condition) [[then]] {code};}} statement.}}
|descr= Links an [[If Type]] with [[Code]] to be executed if said [[If Type]]'s condition is [[true]]; otherwise, "[[else]]" code is executed if provided.<br>
The alternative syntax allows to set "[[then]]" code and "[[else]]" code in one array.
{{Feature|informative|Variables declared inside ''thenCode'' are private to that code block - see {{HashLink|Variables#Local Variables Scope}}.}}


|s1= if [[then]] else
|s1= ifType [[then]] thenCode


|p1= if: [[If Type]]
|p1= ifType: [[If Type]]


|p2= else: [[Code]] or [[Array]] - Can either be a [[Code|code]] block or an array with two [[Code|code]] elements. See '''Example 3'''
|p2= thenCode: [[Code]] or [[Array]] of [[Code]]. Can be one of:
* [[Code]] - code block to execure if ''ifType''<nowiki/>'s condition is [[true]]
* [[Array]] of [[Code]]- array of two [[Code|code]] elements in format [thenCode, elseCode]; see {{HashLink|#Example 3}}


|r1= [[Anything]]
|r1= [[Anything]] - result of the executed code


|x1= <code>[[if]] (a > b) [[then]] { c = 1 };</code>
|x1= <code>[[if]] (a > b) [[then]] { [[hint]] "a is greater than b!"; };</code>


|x2= <code>[[if]] (a > b) [[then]] {
|x2= <code>[[private]] _c = 0;
    c = 1;
[[if]] (a > b) [[then]]
} [[else]] {
{
    c = 2;
_c = 1;
}
[[else]]
{
_c = 2;
};</code>
};</code>


|x3= <code>[[if]] ([[random]] 1 > 0.5) [[then]] [{[[hint]] "> 1";}, {[[hint]] "< 1";}];</code>
|x3= <code>[[if]] ([[alive]] [[player]]) [[then]] [{ [[hint]] "player is alive"; }, { [[hint]] "player is dead"; }];</code>
 
|x4= <code>[[private]] _value = [[if]] ([[alive]] [[player]]) [[then]] { 1 } [[else]] { 0 };</code>


|seealso= [[Control Structures]], [[if]], [[else]]
|seealso= [[Control Structures]], [[if]], [[else]]
}}
}}

Revision as of 03:52, 30 October 2021

Hover & click on the images for description

Description

Description:
Links an If Type with Code to be executed if said If Type's condition is true; otherwise, "else" code is executed if provided.
The alternative syntax allows to set "then" code and "else" code in one array.
Variables declared inside thenCode are private to that code block - see Variables - Local Variables Scope.
Groups:
Program Flow

Syntax

Syntax:
ifType then thenCode
Parameters:
ifType: If Type
thenCode: Code or Array of Code. Can be one of:
Return Value:
Anything - result of the executed code

Examples

Example 1:
if (a > b) then { hint "a is greater than b!"; };
Example 2:
private _c = 0; if (a > b) then { _c = 1; } else { _c = 2; };
Example 3:
if (alive player) then [{ hint "player is alive"; }, { hint "player is dead"; }];
Example 4:
private _value = if (alive player) then { 1 } else { 0 };

Additional Information

See also:
Control Structuresifelse

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