我刚刚开始学习java,我似乎无法找到一种方法来为简单的用户输入使用for循环。假设我必须输入未知数量的hw分数,但在用户实际输入之前我不知道。问题是我必须添加用户输入的分数。如何循环解决问题的扫描程序部分。
import java.util.Scanner;
public class HomeworkCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the homework scores:");
double hwScores = scanner.nextDouble();
//how can I loop through the number of homework added on plus
//add the sum and find the average?
答案 0 :(得分:1)
你可以在这里使用scanner
无循环。(也可以使用循环)。你可以这样试试。
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the homework scores in"
+"a single line by separate by space");
List<Double> list = new ArrayList<>();
String str = scanner.nextLine();
for(String i:str.split(" ")){
list.add(Double.parseDouble(i));
}
System.out.println(list);
输入:
45 58 5 5 66 1
Out put:
[45.0, 58.0, 5.0, 5.0, 66.0, 1.0]
问题的下一部分是关于找到平均值。
您可以通过添加List
的所有元素来查找总和,并将总和除以List
答案 1 :(得分:0)
您可以在输入中使用for循环。在for循环中定义扫描器是很有意义的,因为你只需要循环中的扫描器,但java语法会使结果变得难看,所以在循环之前定义它:
double total = 0.0;
int count = 0;
System.out.println("Please enter the homework scores (negative to end):");
Scanner scanner = new Scanner(System.in);
for (double score = scanner.nextDouble(); score > 0; score = scanner.nextDouble()) {
total += score;
count ++;
scanner.next(); // you need this to clear the newline from the buffer
}
double average = total / count;