我的任务是用给出的分数来总结超过100的任何超出部分.转让说明如下:
"数组testGrades包含NUM_VALS个测试分数.写一个for循环,将sumExtra设置为收到的额外信用额度.完全信用额度为100,因此任何超过100的额外信用额度.例如:如果testGrades = {101,83,107,90},然后sumExtra = 8,因为1 + 0 + 7 + 0是8."
我目前的代码是:
import java.util.Scanner;
public class SumOfExcess {
    public static void main (String [] args) {
      final int NUM_VALS = 4;
      int[] testGrades = new int[NUM_VALS];
      int i = 0;
      int sumExtra = -9999; // Assign sumExtra with 0 before your for loop
      testGrades[0] = 101;
      testGrades[1] = 83;
      testGrades[2] = 107;
      testGrades[3] = 90;
      sumExtra = 0;
      for (i = 0; i < NUM_VALS; ++i){
         if (testGrades[i] > 100){ 
            sumExtra = (testGrades[i] % 100);
         }
      }
      System.out.println("sumExtra: " + sumExtra);
      return;
    }
}
Run Code Online (Sandbox Code Playgroud)
    问题在于以下几行
sumExtra = (testGrades[i] % 100);
Run Code Online (Sandbox Code Playgroud)
您始终在分配sumExtra新值而不是总结.你应该用它替换它
sumExtra += (testGrades[i] % 100);
Run Code Online (Sandbox Code Playgroud)
话虽这么说,你还应该用减号替换你的模运算,以使你的代码正确使用大于199的值.
你也可以使用流:
sumExtra = IntStream.of(testGrades).filter(t -> t > 100).map(t -> t - 100).sum();
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4882 次  |  
        
|   最近记录:  |