Fandom

武装突袭 Wiki

Switch do

简体 | 繁體

4,827个页面创建
于此维基上
添加新页面
评论0 分享

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。

  

点击图片可看到更多讯息

开始使用于

游戏:
Armed Assault
版本:
1.00

描述

描述:
Checks if the given parameter matches any case. If so, the code block of that case will be executed. After that the switch ends so no further cases will be checked.

If a case has no code block, the code of the next case will automatically be executed. This makes it possible to formulate a logical "or" for cases which otherwise would contain the exact same code. (See example 4 below)
The default block will only be executed if no case matches, no matter at which position inside the switch it is.

switch returns whatever the return value of the case block is.

基本句法

句法:
switch do block
参数:
switch: Switch Type

block: Code
返回值:
Anything

范例

范例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" };

};

范例2:
_color = switch (side player) do {

   case west: { "ColorGreen" };
   case east: { "ColorRed" };

};

范例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;

};

范例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"]

额外资讯

多人游戏:
-
也可以看看:

Control Structuresa:bcasedefault

注意事项

此处撰写句法皆为可行用法. 可到官网[1]专页回报错误. 你可以使用讨论页面或是论坛来进行讨论.
新增注意事项 | 如何新增?

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}; };


Posted on November 6, 2014 - 16:33 (UTC)
Eggbeast
BEWARE:
Sometimes, and I'm unsure why, numbers are treated differently (A2OA 1.63) with quote-wraps that worked
in earlier code now not working unless quote-wraps are removed, with otherwise identical code.
_number1 = (floor random 10) switch (_number1) do {

case "0":
{
 _vehicle setobjecttexture[0,"\mymodpath\textures\num1.paa"];
};

//etc };

this one below works, and the one above stopped working with 1.63
switch (_number1) do {

case 0:
{
 _vehicle setobjecttexture[0,"\mymodpath\textures\num1.paa"];
};

//etc };

Posted on December 13, 2014 - 22:41 (UTC)
Commy2

As of Arma 3 v1.36, switch returns true (BOOL) if the condition doesn't match any case and no default block is defined.

switch (0) do {case (1): {"one"};}
-> true

Posted on December 14, 2014 - 04:18 (UTC)
DreadedEntity
Function names can be used in place of code, as shown in Example 3.

更多维基

随机维基