我的代码中的错误是因为另一种方法

时间:2015-09-22 17:02:06

标签: java

输出应为3,但我在代码中遇到错误,如何修复?

public class Tetris {
        public static void add(int x, int y, int sum)
        {
         sum = x + y;
         return sum;
        }

        public static void main(String[] args) {
            int x = 1;
            int y = 2;
            int sum;
            add(sum); // sum cannot be resolved to a variable
            System.out.print(sum);

            }
        }

5 个答案:

答案 0 :(得分:0)

您未在sum中声明变量main,因此未定义。但即使您确实定义了它,方法也会收到传入的参数的副本,因此在sum中为add分配值不会更改声明的summain中。相反,让add返回sum,并在main中,将add的返回值分配给main的{​​{1}}。

答案 1 :(得分:0)

  

总和无法解析为变量

int sum;//You should declare sum variable 

但这里不需要sum

System.out.print(add(x,y));

接下来,将add()方法返回类型更改为int

public static int add(int x, int y)
{
 int sum=x+y;
 return sum;
}

答案 2 :(得分:0)

您正在将sum传递给add方法,但您根本没有声明它。你应该做的是:

public class Tetris {
    public static int add(int x, int y)
    {
      int sum = x + y;
      return sum;
    }

    public static void main(String[] args) {
        int x = 1;
        int y = 2;
        System.out.println(add(x,y)); // sum cannot be resolved to a variable


        }
    }

答案 3 :(得分:0)

public class Tetris{

    /*
     * Java passes references by value.
     * 
     * So you can't change the reference that gets passed in.
     */
    public static int sum = 0;

    public static void add(int x, int y) {
        sum = x + y;
    }

    public static void main(String[] args) {
        int x = 1;
        int y = 2;
        add(x, y); // sum cannot be resolved to a variable
        System.out.print(sum);
    }
}

你从未宣布过总和。'此外,您无法通过以这种方式传递sum来更改sum的值。

答案 4 :(得分:0)

请尝试以下代码,它正常工作

public class Tetris {
        public static int add(int x, int y)
        {
         int sum = x + y;
     return sum;
        }

        public static void main(String[] args) {
            int x = 1;
            int y = 2;
        int sum = 0;
            sum = add(x,y); 
            System.out.print(sum);

            }
        }