无法在我的Array togheter中添加所有数字

时间:2015-11-09 09:36:10

标签: arrays actionscript-3 flash

我要将我的数组中的所有数字相加。 当我有更少的数字(如12,8,3)等时,它工作,但现在数组似乎因为for(var i)而一次又一次地回来。 我不知道有任何其他方法可以做到这一点,如果我得到任何帮助,我会恭喜。

var tall:Array = new Array(34,53,2,3,34,26,26,85,3,4,98,2,12);

for(var i:int = 0;i<tall.length;i++)    
{
    trace(tall[i])    
    sum = sum + tall[i];
}
var sum:int = 0;

for each(var nummer:int in tall)    
{
    sum = sum + tall;    
    trace(tall);
}
trace("summen er " + sum);

1 个答案:

答案 0 :(得分:1)

您的代码通常很好,只是第二部分,您应该将nummer添加到sum(而不是数组本身),当然,还要获取所有数组的总和值,您只需要一个for循环。

关于sum var的声明,你可以像没做的那样做,因为

  

...只要在函数结束之前声明变量,就可以在变量声明之前读取或写入变量。这是因为一种称为提升的技术,这意味着编译器将所有变量声明移动到函数的顶部。

有关详细信息,请查看此topic的第5段。

但最好首先声明所有变量,然后再使用它们来获得更有条理的代码,以避免以后忘记声明其中的某些变量。

所以你的代码可以是这样的:

vars声明:

var tall:Array = [34, 53, 2, 3, 34, 26, 26, 85, 3, 4, 98, 2, 12];
var sum:int = 0;

使用for循环:

for(var i:int = 0; i< tall.length; i++)
{
    sum = sum + tall[i];
}

为每个循环使用a

for each(var nummer:int in tall)
{
    sum = sum + nummer;
}

对于两个循环,sum是:

trace(sum);     // gives : 382

更多信息,您可以查看:

希望可以提供帮助。