then: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " {3,}\|" to " |")
m (Some wiki formatting)
 
(23 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command
{{RV|type=command


| ofpr
|game1= ofp
|version1= 1.85
 
|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= Program Flow
|gr1= Program Flow


|1.85
|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 {{Link|Variables#Local Variables Scope}}.}}


| First or second element of array is executed depending on result of [[if]] condition. Result of the expression executed is returned as a result (result may be [[Nothing]]).
|s1= ifType [[then]] thenCode


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


|p1= if: [[If Type]]
|p2= thenCode: [[Code]] or [[Array]] of [[Code]]:
* [[Code]] - code block to execute if ''ifType''<nowiki/>'s condition is [[true]]
* [[Array]] of [[Code]] - array of two [[Code]] elements in format [thenCode, elseCode]; see {{Link|#Example 3}}


|p2= else: [[Code]] or [[Array]] with 2 [[Code]] elements. See [[else]].
|r1= [[Anything]] - result of the executed code


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


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


| [[Control Structures]], [[if]], [[else]]
|x3= <sqf>if (alive player) then [{ hint "player is alive"; }, { hint "player is dead"; }];</sqf>
}}


<dl class="command_description">
|x4= <sqf>private _value = if (alive player) then { 1 } else { 0 };</sqf>
<!-- Note Section BEGIN -->
<dt class="note">[[User:Ceeeb|Ceeeb]]
<dd class="note">
Any variables you declare within the body of an [[if]]/then statement (ie between the curly braces) are local to that 'if' statement, and are destroyed at the end of the statement. If you know you want to use the variable outside the 'if' statement, make sure your declare it before the 'if' statement.


<!-- Note Section END -->
|seealso= [[Control Structures]] [[if]] [[else]]
</dl>
}}
 
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
{{GameCategory|arma1|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}

Latest revision as of 12:15, 3 January 2024

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:
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 Structures if else

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