Java 编译错误-有人能纠正我吗?

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)

我刚刚创建了一个代码,它表示从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;
    }
}
公共类算术进程{
公共静态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的整数和的编码逻辑错误。请参阅下面的答案。