2015-04-01 53 views
0

我正在研究如何在我的计算机课程中使用阵列,并且在第一次按下后我的显示按钮无法正常工作。第一次单击时,它正常工作并显示所有内容,但第二次停止显示第一个值并开始显示最后一个值两次,第三次切断第二个值并显示最后一个值三次,等等。当我按下按钮来查找所有值的总和时,它会显示出我按下显示按钮后显示的所有值的总和。这是我的代码,对法国评论感到抱歉,这是为了学校。AS3阵列显示按钮无法正常工作

function afficherFunction(event:MouseEvent):void 
{ 

    // Compose cette fonction visant à afficher tous les éléments du tableau. 
    txtSortie.text = ""; 
    var entier:int; 
    entier = -1 
    for (var i:int=entier; i < mesEntiers.length; i++) 
    { 
     if (i+1 < mesEntiers.length) 
     { 
     mesEntiers[i] = mesEntiers[i+1]; 
     affichage = affichage + mesEntiers[i] + "\n" 
     } 
    } 
    txtSortie.text = affichage; 
    affichage = ""; 
    i = -1; 
} //Fin fonction afficher. 
+0

代码正常工作。最后的值被复制,因为它们是从最后一个值复制而来的。下一次他们被复制,等等。所以在某个步骤,所有的值都成为最后一个值的副本。 – 2015-04-01 19:28:52

回答

1

mesEntiers[i] = mesEntiers[i+1];

这条线是你的问题。不知道你对该行的意义是什么,但它将索引i处的值设置为下一个索引的值 - 实际上将所有值都移到下一个值(并且在索引0处丢失值)。

+0

我删除了这一行来尝试修复它,而不是显示“10,20,30,40,50,60,70,80,90,100,110”它显示“未定义,10,20,30,40, 50,60,70,80,90,100“ – 2015-04-07 15:45:37

+1

由于您将'entier'设置为-1,因此'i'设置为-1。所以第一次通过循环它试图访问数组索引-1,这是未定义的。如果要循环访问数组,请从索引0开始。 – Cadin 2015-04-07 21:29:59

+0

所以我让它设置为0,但现在它显示“10,20,30,40,50,60,70,80,90,100”,但它不显示我的价值110 – 2015-04-08 17:14:30