我无法理解如何重置此循环/扫描仪

时间:2014-10-10 16:34:58

标签: java loops java.util.scanner

我的程序假设提示用户输入与考试的考试数相关的考试成绩。然而,这工作正常,当用户输入负面考试分数时,它应该让他们再次重新进入所有三个考试。我的程序会保存任何非负面的考试,因此当您重新进入三门考试时,它只会使用完成三项考试所需的数量或者需要多少考试。可能有一些我很容易丢失的东西,因为我对此很陌生。我认为下面的代码足以得到一个答案,但是如果它是一个比我预期的更大的问题我会有更多的代码。

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

1 个答案:

答案 0 :(得分:1)

我不明白为什么你需要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