编译错误 - 有人可以纠正我吗?

时间:2014-09-17 05:37:53

标签: 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) {
        int result = n;
        for (n = 0; n < i; n++)
            result += result;
        return result;
    }
}

不幸的是,它没有编译,因此它只显示错误。有人可以告诉我如何更正此代码?谢谢!

4 个答案:

答案 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初始化为0any 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整数的总和。

愿这对你有所帮助。