我想计算列表中内容的总和。这是我的代码:
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;
}
}
}
}
您看到用户可以输入号码,但将其保存为字符串,因此我对其进行了解析。但是在那之后,我尝试进行计算,只需列出列表的最后一项。有没有办法获取所有输入来计算总和?
以下是代码的修改部分。正如其他人指出的那样,您只能初始化一次扫描仪。另外,由于循环将继续进行,因此继续陈述是多余的。
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);
}
}
行i = Integer.parseInt((String) item);
之后,您需要将i添加到您的总和中。因此,此后添加以下行:
sum= sum + i;
然后只打印总和为
System.out.println(sum);