循环增量值

时间:2012-11-27 12:35:34

标签: loops actionscript increment

我在6的循环限制中递增给定值。我很好奇我们如何缩短这段代码。

function Cycle_Value(inc_value:Number = 5, times:Number = 3):Number
{
    var return_value:Number = inc_value;        

    while(times >= 1)
    {
       if(inc_value < 6)
       {
          inc_value++;
          return_value = inc_value;
       }
       else if(inc_value == 6)
       {
          return_value = 1;
          inc_value = 1;
       }
       else
          trace(inc_value+" is out of bounds");

        times--;
    }
    return return_value;
}

Sample Output: Cycle_Value(5,2) = 1, Cycle_Value(6,10) = 4

1 个答案:

答案 0 :(得分:2)

试试这个:

function Cycle_Value(inc_value:Number = 5, times:Number = 3):Number
{
   return (inc_value -1 + times) % 6 + 1; 
}

您可以在http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html#modulo

找到有关模运算符的更多信息

注1:如果您愿意使用0 .. 5而不是1 .. 6范围内的数字,您可以简单地使用以下表达式

(inc_value + times) % 6

注2:就个人而言,我会使用不同的名称,例如:价值而不是inc_value和inc而不是时间。