无法从for循环中获得总和

use*_*674 0 java variables for-loop

这是我的代码:

public void checkOut() {   
    double sum;
    System.out.println("Checking out items ..."); 
    for (int i = 0; i < purchases.length; i++) {
        sum =+ purchases[i].getPrice();
        System.out.println(purchases[i].getDescription() + "/" + purchases[i].getPrice());
    }
    System.out.println("Amount due: " + "$" + new DecimalFormat("0.00").format(sum)); 
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,我收到此错误:

局部变量sum可能尚未初始化.

或者,当我将总和线更改为 double sum = sum + purchases[i].getPrice();

我收到以下错误:

sum无法解析为变量.


它基本上是一种方法,可以将物品清单放在购物篮中; 打印项目及其个别价格,然后查找项目的总价格(总和).

谁能告诉我我做错了什么?

Lui*_*oza 9

只需初始化您的变量:

double sum = 0.0;
Run Code Online (Sandbox Code Playgroud)

在Java中,必须在使用之前初始化本地方法变量.在这种情况下,您刚刚声明但未初始化您的sum变量.

请注意,错误非常具有描述性:可能尚未初始化局部变量sum.(强调我的).

或者,当我将总和行更改为>时,double sum = sum + purchases[i].getPrice();我得到错误:总和无法解析为变量.(重点和语法/语法修复我的).

这是因为你的sum变量现在在for循环的范围内而你在外面使用它,这是错误的.编译器告诉您该sum变量之前从未声明过,因此无法使用它.

这是问题(仅限模板):

for(...) {
    double sum = ...
}
//the compiler will complain asking what is this sum variable?
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)

其他答案所述,您的添加代码中存在错误.修复所有这些,您的代码将如下所示:

public void checkOut(){   
    double sum = 0.0;
    System.out.println("Checking out items ..."); 
    for (int i = 0; i<purchases.length; i++) {
        sum += purchases[i].getPrice();
        System.out.println(purchases[i].getDescription() + "/" +
            purchases[i].getPrice());
    }
    System.out.println("Amount due: " + "$" +new DecimalFormat("0.00").format(sum)); 
}
Run Code Online (Sandbox Code Playgroud)