带有 grade 和 sum 的 for 循环内部发生了什么?我不知道它在做什么

What is happening inside the for loop with grade and sum? I have no clue what it's doing

这是一个程序,可以根据他想要的输入数量计算用户测试平均值。但是,我不知道 for 循环内部发生了什么以及它意味着什么。成绩和总和。

   System.out.println("Welcome, please type your first name. ");
   String name = scan.nextLine();
   System.out.println("Welcome, please type your last name. ");
   String last = scan.nextLine();
   int numberOfTests;
   System.out.println("How many tests would you like the average of?");
   numberOfTests = scan.nextInt();

   while(numberOfTests<0)
   {
        System.out.println("Invalid input.");
        System.out.println("How many tests would you like the average 
        of?");
        numberOfTests = scan.nextInt();
   }
   double sum = 0;
   double grade;
   System.out.println("Enter " + numberOfTests + " scores.");
   for(int i = 0;i<numberOfTests;i++)
   {
    grade = scan.nextDouble();
    sum += grade;
   }
   double average = (sum/numberOfTests);
   System.out.println("Okay " + name.charAt(0) + last.charAt(0) + ", your 
   average score is " + (average));
   System.out.print("Your letter grade is ");

程序有效。

grade = scan.nextDouble();

这要求用户输入成绩(双精度数字)

sum += grade;

然后对于每次迭代,将输入的成绩添加到总和中。因此在 numberOfTests 次迭代之后,sum 将包含 numberOfTests 成绩的总和。 正如@Goion 在评论中提到的,sum += grade; 基本上是 sum = sum + grade; 一旦你得到总和,你可以将它除以 numberOfTests 得到平均值。

这里使用了for循环来计算所有成绩的总和。

看起来 scanjava.util.Scanner 的一个实例。此 class 用于从用户输入中读取,因此 grade = scan.nextDouble() 从用户输入中读取下一个 double

sum += grade等同于sum = sum + grade;它将用户输入的 grade 添加到总成绩 (sum)。

因此循环要求用户输入 numberOfTests,并将它们全部添加到 sum

有关如何读取输入的详细信息,请查看 the documentation for Scannner#nextDouble()

这段代码的作用是让你根据numberOfTests的总数输入数字。有了,i = 0 你输入 2。i = 1 你输入 3。总和变量将累加:2 + 3

System.out.println("Enter " + numberOfTests + " scores.");
for(int i = 0;i<numberOfTests;i++){
    grade = scan.nextDouble();
    sum += grade;
} 

最后,总和将等于5

最后

double average = (sum/numberOfTests);

average = 5/2 等于 2.5.

numberOfTests = scan.nextInt();

此处询问他们要输入多少个测试标记。如果输入值小于 0,则再次询问该值。 下面的 for 循环用于根据之前输入的测试值读取 make 的数量 并添加所有输入标记

for(int i = 0;i<numberOfTests;i++)
   {`enter code here`
}

下面语句计算平均分(简单计算总分/测试次数)

double average = (sum/numberOfTests);