then: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (template:command argument fix)
m (Some wiki formatting)
 
(45 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| ofpr |= Game name
|game1= ofp
|version1= 1.85


|1.85|= Game version
|game2= ofpe
____________________________________________________________________________________________
|version2= 1.00


| 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]]).  |DESCRIPTION=
|game3= arma1
____________________________________________________________________________________________
|version3= 1.00


| if '''then''' else |SYNTAX=
|game4= arma2
|version4= 1.00


|p1= if: [[If Type]] |PARAMETER1=
|game5= arma2oa
|version5= 1.50


|p2= else: [[Code]] or [[Array]] with 2 [[Code]] elements. See [[else]]. |PARAMETER2=
|game6= tkoh
|version6= 1.00


| [[Anything]] |RETURNVALUE=
|game7= arma3
____________________________________________________________________________________________
|version7= 0.50


|x1 = <code>[[if]] (a > b) [[then]] { c = 1 };</code> | = Example 1
|gr1= Program Flow
____________________________________________________________________________________________


|x2 = <code>[[if]] (a > b) [[then]] {
|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>
    c = 1;
The alternative syntax allows to set "[[then]]" code and "[[else]]" code in one array.
} [[else]] {
{{Feature|informative|Variables declared inside ''thenCode'' are private to that code block - see {{Link|Variables#Local Variables Scope}}.}}
    c = 2;
 
|s1= ifType [[then]] thenCode
 
|p1= ifType: [[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}}
 
|r1= [[Anything]] - result of the executed code
 
|x1= <sqf>if (a > b) then { hint "a is greater than b!"; };</sqf>
 
|x2= <sqf>
private _c = 0;
if (_a > _b) then
{
_c = 1;
}
else
{
_c = 2;
};
};
[[hint]] [[str]] c;</code>| = Example 2
</sqf>
____________________________________________________________________________________________
| [[Control Structures]], [[if]], [[else]] |SEEALSO=
 
}}


<h3 style="display:none">Notes</h3>
|x3= <sqf>if (alive player) then [{ hint "player is alive"; }, { hint "player is dead"; }];</sqf>
<dl class="command_description">
<!-- 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 -->
|x4= <sqf>private _value = if (alive player) then { 1 } else { 0 };</sqf>
</dl>


<h3 style="display:none">Bottom Section</h3>
|seealso= [[Control Structures]] [[if]] [[else]]
[[Category:Scripting Commands|THEN]]
}}
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|THEN]]
[[Category:Scripting Commands ArmA|THEN]]
[[Category:ArmA: Control Structures|THEN]]
[[Category:Command Group: Program Flow|THEN]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]

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