这是我的输出的问题:
Enter number of students: 3
Enter the grade for student 1:
-2
Invalid grade, try again...
Enter the grade for student 2:
-3
Invalid grade, try again...
Enter the grade for student 3:
110
Invalid grade, try again...
The average is 35.0
但在示例输出会话中如下:
Enter number of students: 3
Enter the grade for student 1:
55
Enter the grade for student 2:
108
Invalid grade, try again...
Enter the grade for student 2:
56
Enter the grade for student 3:
57
The average is 56.0
你能看到-2
, the-3
和110
没有打破循环,它一直在要求新的输入吗?而不是108
在样本上显示并立即中断循环并要求用户student 2
再次提示输入。
这是我的代码:
public static int theSumOfGrade(int[] newArray, int grade) {
int sumGrade = 0;
for(int i = 0; i < newArray.length; i++) { // for i < array length
sumOfGrade += newArray[i]; // the sum will be added up with all the values inside the array
}
return sumOfGrade;
}
public static int[] getNumberOfStudentsArray(Scanner input) { // Number of students input method
System.out.printf("Enter number of students: "); // Prompt the number of students from the user
int numberOfStudents= input.nextInt(); // Scanner Object in with numberOfStudents variable
int studentGrades[] = new int[numberOfStudents]; // Assign to new Array
for (int i = 0; i < numberOfStudents; i++) {
System.out.println("Enter the grade for student " + (i+1) + ":" );
studentGrades[i] = input.nextInt();
// for (int j = 0; j < studentGrades.length; j++) {
// }
if (studentGrades[i] < 0 || studentGrades[i] > 100) {
System.out.println("Invalid grade, try again");
continue;
}
}
return studentGrades;
} // end of getNumberOfStudentsArray()