我要将我的数组中的所有数字相加。 当我有更少的数字(如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);
答案 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
更多信息,您可以查看:
希望可以提供帮助。