获得增值的值并在每次增量后返回

时间:2012-02-23 21:36:57

标签: java methods return

我试图将变量从0-99递增,并且每次都返回该值,但我不确定我是如何做到这一点的。这是我到目前为止的代码:

public int getValue()
{
  if (currentState == COUNTING)
  {
    for (int i = 0; i <= 99; i++)
    {
      value = i;
    }

    return value;      

  } else {
    return super.getValue();   
  }
} 

我不确定如何修改它,因为它正在返回99.我知道为什么,但不知道如何完成我想要做的事。

5 个答案:

答案 0 :(得分:4)

不幸的是,严格来说,您无法从方法调用中返回多个值。 Java中的方法只能返回单个原始值或Object ..

您的代码返回99,因为当循环结束执行时,循环变量'i'的最终'值'为99。相反,您应该尝试在整数数组中返回值保持。

答案 1 :(得分:1)

在java中,一个函数只能返回一次;在那一点上它退出了该功能。您可能对this question感兴趣。

所以简短的回答是否定的。如果您可以提供更多关于您要完成的内容的上下文,则可以尝试帮助解释在Java中执行此操作的好方法。

答案 2 :(得分:0)

您可以创建static成员并在每次通话时递增。

class MyClass
{
   private static int value = 0;
   public int getValue
   {
       if ( value >= 99 )
          return value; //or throw exception, whatever
       else
          return value++;
   }
}

编辑:如果您的getValue绑定了该课程的实例,则无需value成为static。如果您希望对方法的每次调用都返回一个增量值,无论调用它的对象如何,都必须将其设为static

答案 3 :(得分:0)

如果您需要保留格式,对于自己行中的每个数字,则需要添加新行 \ n endl

如果您只想使用单一方法和单次返回打印1-99,则需要使用数组

答案 4 :(得分:0)

有一个维护值的类变量,然后每次调用getValue()时返回递增的值

private int value=0;
public int getValue()
{
  if (currentState == COUNTING)
  { 
    return value++;
  }
  else
    return super.getValue();   
}