Java 编译错误-有人能纠正我吗?
我刚刚创建了一个代码,它表示从1到10的整数值之和Java 编译错误-有人能纠正我吗?,java,string,args,Java,String,Args,我刚刚创建了一个代码,它表示从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)
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;
}
}
公共类算术进程{
公共静态void main(字符串参数[]){
int i=10;
int n;
System.out.println(算术进程(n,i));
}
静态整数算术进程(整数n,整数i){
int结果=n;
对于(n=0;n
不幸的是,它没有编译,因此只显示错误。谁能告诉我怎么更正这个代码吗?谢谢大家! 您需要在此处初始化
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作为类级别变量。然后将其设置为默认值。您需要在此处初始化
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作为类级别变量。然后将其设置为默认值。作为
int n代码>在方法main中声明,它不会被初始化,因为它是一个局部变量,并且局部变量不会自动初始化。您需要在使用之前显式初始化它。因此,将其更改为int n=0代码>将起作用。作为intn代码>在方法main中声明,它不会被初始化,因为它是一个局部变量,并且局部变量不会自动初始化。您需要在使用之前显式初始化它。因此,将其更改为int n=0代码>将起作用。您将得到编译错误,因为在java中,局部变量是堆栈变量,必须先初始化它们才能使用。在本例中,变量n在初始化之前使用。像这样初始化它,它应该可以工作
int n= 1;
您将得到编译错误,因为在java中,局部变量是堆栈变量,必须先初始化它们才能使用。在本例中,变量n在初始化之前使用。像这样初始化它,它应该可以工作
int n= 1;
您的代码中有两个问题。
1。必须先初始化局部变量,然后才能使用它。您需要将n
初始化为0
或适用于您的逻辑的任何其他值
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;
}
static int算术进程(int i){
int结果=0;
对于(int n=1;n代码中有两个问题。
1。必须先初始化局部变量,然后才能使用它。需要将n
初始化为0
或适用于逻辑的任何其他值
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;
}
static int算术进程(int i){
int结果=0;
对于(int n=1;n非常感谢您的快速响应!我尝试了这种方式,但它显示了完全不同的值-10240。@marshallee您需要使用正确的值初始化n
。非常感谢您的快速响应!我尝试了这种方式,但它显示了完全不同的值-10240。@marshallee您需要初始化n
值正确。您对1到10的整数和的编码逻辑错误。请参阅下面的答案。您对1到10的整数和的编码逻辑错误。请参阅下面的答案。