切换语句和数字范围

Cap*_*hab 8 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了多种方法使案例适用于10-100和110-1000之间的所有数字,但似乎无法找到一种方法来做到这一点,我找不到这样的事情的正确语法在as3.

OXM*_*456 15

您可以使用开关块:

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
Run Code Online (Sandbox Code Playgroud)

  • @alxx - 它可能看起来很脏,但令我惊讶的是,这个切换范围代码实际上优于if-else链.我测试了100万个随机数,进入10个相同大小的范围,开关一致性能提高了15%! (3认同)