if: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
Line 75: | Line 75: | ||
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]] | ||
<!-- CONTINUE Notes --> | |||
<dl class="command_description"> | |||
<dd class="notedate">Posted on June 5, 2015 - 09:35 (UTC)</dd> | |||
<dt class="note">[[User:AgentRevolution|AgentRevolution]]</dt> | |||
<dd class="note"> | |||
If you only need to choose between 2 raw values, it is possible to use the following trick to avoid using code blocks, as required by the if command, which results in greater atomicity and faster execution: | |||
<code>_result = [falseValue, trueValue] [[select]] condition;</code> | |||
The select command treats "false" as 0 and "true" as 1, therefore you can feed it a condition determining the array index of the value to be returned. Here is another example: | |||
<code>_result = [1,-1] select (_this < 0); // If _this is less than 0, _result will be equal to -1, otherwise it will be 1</code> | |||
This feature was added in Arma 3. | |||
</dd> | |||
</dl> | |||
<!-- DISCONTINUE Notes --> |
Revision as of 10:35, 5 June 2015
Description
- Description:
- The standard if, then, else construct available in many languages. This syntax however has alternate forms in the manner of an Array.
- if (condition) then { code } else { code }
- if (condition) then [ { code }, { code } ]
- Groups:
- Uncategorised
Syntax
- Syntax:
- Anything = if (condition) then { Code } else { Code }
- Parameters:
- condition: Boolean expression. If it evaluates as 'true', the 'then' clause is executed. Otherwise, the 'else' clause (if present) is executed.
- Return Value:
- If Type - Predicate which will execute 1st or 2nd option when used. This predicate is used in then or exitWith commands.
Alternative Syntax
- Syntax:
- Anything = if (condition) then [ { ThenCode } , { ElseCode } ]
- Parameters:
- condition: Boolean expression. If it evaluates as 'true', the 'then' clause is executed. Otherwise, the 'else' clause (if present) is executed.
- Return Value:
- If Type - Predicate which will execute 1st or 2nd option when used. This predicate is used in then or exitWith commands.
Examples
- Example 1:
_retVal = if (1 > 0) then { "It's true" } else { "It's false" }; hint str _retVal
- Example 2:
_val = if (true) then [ { "true" }, { "false" } ]; hint _val;
Additional Information
- See also:
- elseexitWiththenControl Structures
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
- Posted on Jan 31, 2007 - 04:08
- Ceeeb
- Any _local 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.
- Posted on Jan 17, 2010 - 02:40
- Galzohar
-
(A2 1.05) If the condition is nil then neither the "then" nor the "else" section get executed, but the script will proceed with no error messages.
Example code:hint "script started"; //will get executed if (nil) then { hint "true"; // will never get executed } else { hint "false"; // will never get executed }; sleep 3; hint "script ended"; //will get executed
Bottom Section
- Posted on June 5, 2015 - 09:35 (UTC)
- AgentRevolution
-
If you only need to choose between 2 raw values, it is possible to use the following trick to avoid using code blocks, as required by the if command, which results in greater atomicity and faster execution:
_result = [falseValue, trueValue] select condition;
The select command treats "false" as 0 and "true" as 1, therefore you can feed it a condition determining the array index of the value to be returned. Here is another example:_result = [1,-1] select (_this < 0); // If _this is less than 0, _result will be equal to -1, otherwise it will be 1
This feature was added in Arma 3.
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint: Resistance version 1.85
- Operation Flashpoint: Resistance: New Scripting Commands
- Operation Flashpoint: Resistance: Scripting Commands
- Command Group: Uncategorised
- Scripting Commands OFP 1.99
- Scripting Commands OFP 1.96
- Scripting Commands ArmA
- ArmA: Control Structures
- Command Group: Program Flow
- Scripting Commands ArmA2
- Scripting Commands Arma 3
- Scripting Commands Take On Helicopters