我的程序假设是提示用户输入与参加多少次考试有关的考试成绩。但是,这很好,当用户输入否定的考试分数时,应该使他们再次重新参加所有三项考试。我的程序会保存所有非负数的考试,因此当您重新参加三门考试时,它仅使用完成三门考试所需的数量或正在寻找的数量。我可能很容易错过一些事情,因为我是新来的。我认为下面的代码足以解决问题,但是,如果这是一个更大的问题,那么我的代码就更多了。
System.out.print("Enter exam scores :");
for(int y = 1; y <= numberofexams; y++) {
examgrades = NumScanner.nextDouble();
while(examgrades < 0) {
NumScanner.nextLine();
System.out.print("Invalid exam scores, reenter scores: ");
examgrades = NumScanner.nextDouble();
}
System.out.println();
if(y > numberofexams) break;
sum += examgrades; //exam average
sum2 += examgrades; //class average
} // number of exams
最佳答案
我看不到为什么需要while
循环,为什么还要扫描nextLine()
?
试试这个代码:
System.out.print("Enter exam scores :");
for(int y = 1; y <= numberofexams; y++) {
examgrades = NumScanner.nextDouble();
if(examgrades < 0) {
y = 1;
continue;
}
System.out.println();
if(y > numberofexams) break;
sum += examgrades; //exam average
sum2 += examgrades; //class average
} // number of exams