我刚刚创建了一个代码,表示1到10之间的整数值之和。
public class ArithmeticProgress {
public static void main(String args[]) {
int i = 10;
int n;
System.out.println(arithmeticprogress(n, i));
}
static int arithmeticprogress(int n, int i) {
int result = n;
for (n = 0; n < i; n++)
result += result;
return result;
}
}
不幸的是,它没有编译,因此它只显示错误。有人可以告诉我如何更正此代码?谢谢!
答案 0 :(得分:3)
您需要在此处初始化n
。
int n=10; // initialize n to some value
System.out.println(arithmeticprogress(n, i)); //else you will get error here
使用IDE
进行编码。然后你会得到
int n;
System.out.println(arithmeticprogress(n, i));//'n' might not be initialize
否则你可以使用n作为类级变量。然后它将设置为默认值。
答案 1 :(得分:1)
由于int n;
在方法main中声明,因此它不会被初始化,因为它是局部变量,并且本地变量不会自动初始化。您需要在使用前明确初始化它。因此,将其更改为int n=0;
即可。
答案 2 :(得分:0)
您收到编译错误,因为在java中,局部变量是堆栈变量,必须先将它们初始化才能使用它们。在您的情况下,变量n在初始化之前使用。像这样初始化它应该可以工作。
int n= 1;
答案 3 :(得分:0)
您的代码中存在两个问题
1。您必须在使用之前初始化局部变量。您需要将适用于您的逻辑的n
初始化为0
或any other value
。
2。如果你想获得1到10之间的整数之和,那么你的逻辑是不正确的,这就是为什么你得到1024的结果(如果你初始化n = 1) 。您是否将当前结果添加到以前的结果不正确。要简单地添加1到10之间的整数,我认为您在代码中不需要变量n
。
为此,您的方法应如下所示:
static int arithmeticprogress(int i) {
int result = 0;
for (int n = 1; n <=i; n++)
result = result + n;
return result;
}
它会给你结果55
,它是1到10整数的总和。
愿这对你有所帮助。