switch do: Difference between revisions
Jump to navigation
Jump to search
m (Added: Example with multiple choices) |
Fred Gandt (talk | contribs) (Merged content from and redirected switch) |
||
Line 19: | Line 19: | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1 = | |x1= <code>[[switch]] (_a) [[do]] { [[case]] 1 : { /*...code...*/ }; [[case]] 2 : { /*...code...*/ }; [[default]] { /*...code...*/ }; };</code> | ||
{ | <br> | ||
<code>[[switch]] (_condition) [[do]] { | |||
[[case]] 1: { [[hint]] "1" }; | |||
[[case]] 2: { [[hint]] "2" }; | |||
[[default]] { [[hint]] "default" }; | |||
};</code> | |||
<br> | |||
<code>[[switch]] (_condition) [[do]] { | |||
[[case]] "string1"; | |||
[[case]] "string2": { [[hint]] "string1 or string2" }; | |||
[[case]] "string3"; | |||
[[case]] "string4": { [[hint]] "string3 or string4" }; | |||
[[default]] { [[hint]] "default" }; | |||
};</code> |= Example 1 | };</code> |= Example 1 | ||
| [[Control Structures]] | |x2= <code>_color = [[switch]] ([[side]] [[player]]) [[do]] { | ||
[[case]] [[west]]: { "ColorGreen" }; | |||
[[case]] [[east]]: { "ColorRed" }; | |||
};</code> | |||
|x3= <code>_fn_moveForward = { /*...code...*/ }; | |||
_fn_moveBackward = { /*...code...*/ }; | |||
_fn_invalidKey = { /*...code...*/ }; | |||
[[switch]] [[true]] [[do]] { | |||
[[case]] (_dikCode [[in]] [[actionKeys]] "MoveForward"): _fn_moveForward; | |||
[[case]] (_dikCode [[in]] [[actionKeys]] "MoveBackward"): _fn_moveBackward; | |||
[[default]] _fn_invalidKey; | |||
};</code> |= Example 3 | |||
|x4= <code>[[switch]] _var [[do]] { | |||
[[case]] "0"; | |||
[[default]] { [[hint]] [[str]] ["default", _var] }; | |||
[[case]] "3": { [[hint]] [[str]] ["3", _var] }; | |||
[[case]] "1"; | |||
[[case]] "4"; | |||
[[case]] "2": { [[hint]] [[str]] ["2", _var] }; | |||
};</code> | |||
<pre>_var = "0"; //-> ["3", "0"] | |||
_var = "1"; //-> ["2", "1"] | |||
_var = "2"; //-> ["2", "2"] | |||
_var = "3"; //-> ["3", "3"] | |||
_var = "4"; //-> ["2", "4"] | |||
_var = "5"; //-> ["default", "5"]</pre> |= Example 4 | |||
| [[Control Structures]], [[a:b]], [[case]], [[default]] |= See also | |||
}} | }} |
Revision as of 20:38, 4 April 2014
Description
- Description:
- Switch form.
- Groups:
- Uncategorised
Syntax
- Syntax:
- switch do block
- Parameters:
- switch: Switch Type
- block: Code
- Return Value:
- Anything
Examples
- Example 1:
switch (_a) do { case 1 : { /*...code...*/ }; case 2 : { /*...code...*/ }; default { /*...code...*/ }; };
switch (_condition) do { case 1: { hint "1" }; case 2: { hint "2" }; default { hint "default" }; };
switch (_condition) do { case "string1"; case "string2": { hint "string1 or string2" }; case "string3"; case "string4": { hint "string3 or string4" }; default { hint "default" }; };
- Example 2:
_color = switch (side player) do { case west: { "ColorGreen" }; case east: { "ColorRed" }; };
- Example 3:
_fn_moveForward = { /*...code...*/ }; _fn_moveBackward = { /*...code...*/ }; _fn_invalidKey = { /*...code...*/ }; switch true do { case (_dikCode in actionKeys "MoveForward"): _fn_moveForward; case (_dikCode in actionKeys "MoveBackward"): _fn_moveBackward; default _fn_invalidKey; };
- Example 4:
switch _var do { case "0"; default { hint str ["default", _var] }; case "3": { hint str ["3", _var] }; case "1"; case "4"; case "2": { hint str ["2", _var] }; };
_var = "0"; //-> ["3", "0"] _var = "1"; //-> ["2", "1"] _var = "2"; //-> ["2", "2"] _var = "3"; //-> ["3", "3"] _var = "4"; //-> ["2", "4"] _var = "5"; //-> ["default", "5"]
Additional Information
- See also:
- Control Structuresa:bcasedefault
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 07 Aug, 2008
- ColonelSandersLite
Be careful of the parenthesis around the variable you're switching on. If you accidentally use braces instead (ex: switch {_myVar} do{...), it won't error, but will always return default.
- Posted on 11 Aug, 2008
- Dr_Eyeball
- Using switch with strings is case-sensitive, (unlike string comparisons).
- Posted on 12 Aug, 2008
- General Barron
- To be safe about the case sensitivity issue, use the toLower or toUpper command to force all strings to a certain case.
- Posted on 06 Oct, 2009
- Iva
-
It's possible to use Boolean value as a switch and Code as case. One thing to take special care in such case is that code must be in parentheses. Example:
switch (true) do { case (_boolVar): {someCode}; case (unit1 distance unit2 > 5): {someCode}; };