输出应为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);
}
}
答案 0 :(得分:0)
您未在sum
中声明变量main
,因此未定义。但即使您确实定义了它,方法也会收到传入的参数的副本,因此在sum
中为add
分配值不会更改声明的sum
在main
中。相反,让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);
}
}