2016-04-23 77 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]; 
} 

这应该有所斩断。