我想计算列表中内容的总和。这是我的代码:
import java.util.ArrayList;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
int sum = 0;
int i = 0;
ArrayList nummer = new ArrayList(); // make new list
while (true) {
Scanner input = new Scanner(System.in); // start scanner
System.out.print("Voer uw naam in: ");
String naam = input.nextLine(); // scanner waiting for input + enter
if (naam.equals("0")) {
System.out.println("Wrong, exit!");
input.close();
for (Object item : nummer) { // foreach-loop
System.out.print(item + "\n");
i = Integer.parseInt((String) item);
}
System.out.println(sum = i);
break;
} else {
nummer.add(naam);
continue;
}
}
}
}
如您所见,用户可以输入数字但它会保存为字符串,因此我对其进行了解析。但在那之后我尝试进行计算只需要列表的最后一项。有没有办法把所有输入都用来计算总和?
答案 0 :(得分:1)
在行i = Integer.parseInt((String) item);
之后,您需要将i添加到您的总和中。因此,在此之后添加以下行:
sum= sum + i;
然后只需将总和打印为
System.out.println(sum);
答案 1 :(得分:1)
以下是代码的修改部分。正如其他人所指出的,你应该只初始化一次扫描仪。此外,continue语句在您拥有它时是多余的,因为无论如何循环都会继续。
int sum = 0;
int i = 0;
ArrayList nummer = new ArrayList(); // make new list
Scanner input = new Scanner(System.in); // start scanner
while (true) {
System.out.print("Voer uw naam in: ");
String naam = input.nextLine(); // scanner waiting for input + enter
if (naam.equals("0")) {
System.out.println("Wrong, exit!");
input.close();
for (Object item : nummer) { // foreach-loop
System.out.print(item + "\n");
i = Integer.parseInt((String) item);
sum += i;
}
System.out.println(sum);
break;
} else {
nummer.add(naam);
}
}