将多个if-else逻辑转换为for循环

时间:2015-04-02 17:25:18

标签: c# if-statement for-loop unity3d

目前我的代码中有多个if-else循环,例如:



if (a > 2 && a < 4)
{
  // do something
}
else if (a > 4 && a < 6)
{
  // do something
}
else if (a > 6 && a < 8)
{
  // do something
}

... and so on.
&#13;
&#13;
&#13;

有没有办法将其重新排列成更简单的FOR循环?或任何其他可以使代码更优化的循环?

3 个答案:

答案 0 :(得分:1)

如果您想检查确切的值,可以使用switch。但是,由于您的条件基于数学表达式,因此您最好坚持使用您所拥有的内容。它可能看起来很混乱,但它可能已经是你做你想做的事情最有效的方式。

答案 1 :(得分:1)

for (int i = 2; ; i += 2)
    {
        if (a > i && a < i + 2)
        {
            //Do your thing
            break;
        }
    }

答案 2 :(得分:0)

如果我理解正确,你只需要将值放在一个数组中,如下所示并动态调用方法,那就是你要找的东西?

var range = [3,5,7] //defined the range as >2 and <4 is equal to 3 and so on.

$.each(range, function(i, val){

  window[PerformActionByVal + val]();//call the specific function

});

function PerformActionByVal3()
{
}

function PerformActionByVal5()
{
}