2016-04-23 112 views
-1

我有一個簡單的事實應用程序,它具有不同的事實數組。 我有一個下一個,上一個和主頁按鈕。 當按下主頁按鈕時,我希望再次顯示第一個事實,之後,它將從第一個數組值開始再次遞增。數組不正確循環Java

我的主頁按鈕不起作用。如果我按下下一個按鈕5次,然後點擊主頁按鈕,我將被引導到第一個事實,但如果我點擊下一個按鈕,那麼將顯示第六個事實,而不是第二個。

這裏是我的代碼:

public String nextFact() { 
     i++; 
     if(i >= facts.length) { 
      i = 0; 
     } 

     return facts[i]; 
    } 


    public String previousFact() { 
     i--; 
     if(i < 0) { 
      i = facts.length - 1; 
     } 
     return facts[i]; 
    } 

    public String homeButton() { 
     int i = 0; 
     return facts[i]; 
    } 
+0

'i'從哪裏來?如果它是班級的一部分,請使用'this.i'。否則,作爲參數傳遞。 – cst1992

回答

4

你宣佈一個新的當地版本的i。 它應該是:

public String homeButton() { 
     i = 0; 
     return facts[i]; 
    } 
-1

根據你的代碼,我假設我是跨越三個方法共享的變量,跟蹤當前顯示的問題的指標。如果是這樣,你的方法應該把類成員i重置爲0,而不是創建一個局部變量。

public String homeButton() { 
    i = 0; 
    return facts[i]; 
} 

這應該有所斬斷。