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无法解析为变量.
它基本上是一种方法,可以将物品清单放在购物篮中; 打印项目及其个别价格,然后查找项目的总价格(总和).
谁能告诉我我做错了什么?
只需初始化您的变量:
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)