Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 开关语句和数字范围_Actionscript 3 - Fatal编程技术网

Actionscript 3 开关语句和数字范围

Actionscript 3 开关语句和数字范围,actionscript-3,Actionscript 3,如何在as3中创建一个switch语句,使其适用于整个数字范围 if (mcPaddle.visible == true) { switch (score) { case 10://10 to 100 myColor.color = 0x111111; break; case 110://110 to 1000 //etc etc break;

如何在as3中创建一个switch语句,使其适用于整个数字范围

if (mcPaddle.visible == true)
{
    switch (score)
    {
        case  10://10 to 100
            myColor.color = 0x111111;
            break;
        case 110://110 to 1000
            //etc etc
            break;
    }
}

我尝试了多种方法使案例适用于10-100和110-1000之间的所有数字,但似乎找不到一种方法,在as3中也找不到适用于这种情况的正确语法。

ActionScript的switch语句不适用于范围,但您可以轻松地使用if/else链:

if (score >= 10 && score <= 100)
{
    //10 - 100
}
else if (score <= 110)
{
    //101 - 110
}
else if (score <= 1000)
{
    //111 - 1000
}

if(score>=10&&scoreswitch语句只是对
if(a=b)或(a=c)或(a=d)的重述。
类型构造。它们不适用于范围。您可以使用故障诊断来模拟它:

switch (score) {
   case 10:
   case 11:
   case 12:
   case 13:
   case etc...
        blah blah blah
        break;
}

但这是一种愚蠢可笑的方式。使用常规的
if()

更容易/更简洁。您可以使用开关块:

var score:Number = 123;

switch(true){

    case score > 120 && score < 125 :
        trace('score > 120 && score < 125');
        break;

    case score > 100 && score < 140 :
        trace('score > 100 && score < 140');
        break;

    case score == 123 :
        trace('score == 123');
        break;

}
//score > 120 && score < 125
var分数:Number=123;
开关(真){
病例评分>120分和<125分:
跟踪('分数>120&&分数<125');
打破
病例评分>100分和<140分:
跟踪('分数>100&&分数<140');
打破
病例评分==123:
跟踪('score==123');
打破
}
//分数>120和<125

对于那些想在HTML/jQuery中使用它的人,我已经使用@OXMO456的答案创建了这个简单的笔:

您只需正常设置
var
,然后删除以
trace
开头的行


另外,我添加这个作为回答,因为我没有足够的代表对他的评论。如果有人可以,请移动/复制这个。谢谢!

该死,我希望避免这种情况,因为如果嵌套不美观且杂乱无章,则会出现大的其他情况,但如果switch语句不能完成范围,我想我别无选择。它们实际上不必嵌套,你可以将它们链接起来。如果你不在每个关卡后面加上四个空格的偏移量,If/else块的可读性就会很好。谢谢,这很好用,这正是我所需要的。从来没有想过要更改switch语句来检查所有内容是否为true,然后检查分数的真值。@alxx-这看起来很脏,但让我自己惊讶的是,这个开关范围是code实际上优于if else链。我测试了100万个随机数进入10个大小相等的范围,交换机的性能始终比它高15%。@alxx这是使用它的一个很好的理由。请投票支持性能测试