2015-04-01 54 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