我在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
答案 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而不是时间。