方法必须返回int类型

时间:2014-05-29 04:58:11

标签: java return-type

我试图通过使用点运算符在静态中调用非静态方法来进行添加。但是我收到了这个错误:"此方法必须返回int"。

类型的结果
class Hello1 {
    int pluss(int...v) {
        int plus=0;
        for(int x :v) {
            plus=plus+x;
            System.out.println(plus);
            return plus;            
        }
    }
}

public class Addition {
    public static void main (String args[]) {
        Hello1 h1=new Hello1();
        h1.pluss(3,7,9,10);
    }
}

5 个答案:

答案 0 :(得分:1)

你把回报放在for循环中!

改变这个:

int pluss(int...v){
  int plus=0;
  for(int x :v)
  {
    plus=plus+x;
    System.out.println(plus);
    return plus;            
  }
}

对此:

int pluss(int...v){
  int plus=0;
  for(int x :v)
    plus=plus+x;
  System.out.println(plus);
  return plus;            
}

答案 1 :(得分:1)

这不是静态或非静态方法的问题。你可以做到这一点,你实际上在其中创建一个对象。

<强> This method must return a result of type int

表示您错过了方法结尾处的return语句。

int plus(int..v){
//do whatever
//end
return plus
}

使用int result = h1.pluss(3,7,9,10);来接收

答案 2 :(得分:0)

没有关闭花括号的问题,试试这个..

class Hello1 {
   int pluss(int...v){
     int plus=0;
     for(int x :v){
     plus=plus+x;
     System.out.println(plus);
     }
     return plus;            

}}

public class Addition{
public static void main(String args[]) {
Hello1 h1=new Hello1();
h1.pluss(3,7,9,10);
}}

答案 3 :(得分:0)

return循环的第一次迭代中的for,可能不是您打算做的 - 将return移出其中:

int pluss(int...v) {
     int plus=0;
     for (int x :v) {
         plus=plus+x;
         System.out.println(plus);
    }
    return plus;
}

答案 4 :(得分:0)

return语句应该在for block之外,如下所示...查看下面的代码,它应该可以正常工作。

  class Hello1
{
    int pluss(int... v)
    {
        int plus = 0;
        for (int x : v)
        {
            plus = plus + x;
            System.out.println(plus);
        }
        return plus;
    }
}

public class Addition
{
    public static void main(String args[])
    {
        Hello1 h1 = new Hello1();
        h1.pluss(3, 7, 9, 10);
    }
}