我正在做一个网站的Java编程实践。我必须使用数组来展示这一点。Java条件程序
Enter the 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
这是我的源代码到目前为止。它显示结果但不能正常工作。第一名学生需要的学生人数为&。但然后它暂停,如果我按任何数字&按回车,它要求下一年级&等。这样它最终打印平均值。如果我输入不允许的输入,它会捕捉到这一点。 这段代码有什么问题。
package array;
import java.util.Scanner;
public class GradesAverage {
public static void main(String[] args) {
int numStudents, sum=0;
int[] grades;
Scanner in = new Scanner(System.in);
System.out.print("Enter number of students : ");
numStudents = in.nextInt();
grades = new int[numStudents];
//System.out.println(grades.length);
for (int i = 0; i < numStudents; i++) {
System.out.print("Enter grade of student "+i+" :");
grades[i] = Integer.parseInt(in.next());
if(grades[i]>100 || grades[i]<0)
{
System.out.println("It is not a valid number!");
i--;
continue;
}
//grades[i] = Integer.parseInt(in.next());
sum+=grades[i];
}
System.out.print("Average grades are: "+sum/numStudents);
in.close();
}
}
*此代码有什么问题* - 您告诉我们!它以何种方式表现不如预期? – aioobe 2012-07-29 12:18:52
您是否尝试过使用调试器? – Rndm 2012-07-29 12:19:14
@aioobe:正如我在OP中所说的那样,在获得第一个等级的输入后,它就停下来了。然后,如果我在控制台上随机输入一个数字并按下回车键,它会显示下一级输入的信息。通过这种方式,当所有成绩完成后,说方式我输入一个随机数并按回车。它显示结果。虽然如果我输入了错误的输入即<0 || grade > 100,它会显示错误信息并直接再次请求相同的等级。 – enterprize 2012-07-29 12:26:56