Java 由于另一种方法,我的代码中出现错误
输出应该是3,但代码中有错误,如何修复Java 由于另一种方法,我的代码中出现错误,java,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
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);
}
}
您没有在
main
中声明变量sum
,因此它未定义。但即使您定义了它,方法也会收到传入参数的副本,因此在add
中为sum
赋值不会更改main
中声明的sum
。相反,让add
返回sum
,并在main
中,将add
的返回值分配给main
的sum
sum不能解析为变量
但是这里不需要sum
System.out.print(add(x,y));
接下来,将add()
method返回类型更改为int
public static int add(int x, int y)
{
int sum=x+y;
return sum;
}
您正在将
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
}
}
您从未声明过“sum”。此外,以这种方式传递sum将无法更改sum的值。请尝试下面的代码,它工作正常
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);
}
}
您在哪里申报的?请不要更改问题的内容;它可能会使已经存在的答案无效。请查看我的答案。你能看到代码吗,我更改了它,你的意思是??谢谢。请不要改变你的问题;它使现有答案无效。我应该将System.out.print(总和)放在哪里;它会打印出总数。
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);
}
}
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);
}
}