Программа отладки, которая суммирует первые 10 значений в файле и следующие 10 значений после - PullRequest
0 голосов
/ 06 апреля 2020

Я кодирую программу, которая должна суммировать первые 10 значений в файле и вторые 10 значений в файле. Вторые 10 значений являются дубликатами первых 10, поэтому ответы должны быть одинаковыми. Моя программа проверяет, найден ли файл, и останавливает выполнение, если он не был найден. Вот код, который у меня есть:

package experiment8;

import java.io.*;
import java.util.Scanner;
public class Bugs
{
  public static Scanner inData;

  public static void main(String[] args) throws IOException
  {
    int fileFound;
    try
    {
      inData = new Scanner(new FileReader("Bugs.dat"));
      fileFound = 1;
    }
    catch (IOException exception)
    {
       fileFound = 2;  
    }
    int  value;
    switch (fileFound)
    {

      case 1 :     
             // do loop
             int  counter = 1;
             int  sum = 0;
             do
             {
               value = inData.nextInt();
               sum = sum + value;
             } while (counter <= 10);
             System.out.println(sum);
             // for loop
             sum = 0;
             for (counter = 1; counter <= 10; counter++)
             {
               value = inData.nextInt();
               sum = sum + value;
               counter++;
             }
            System.out.println(sum);
      case 2 : System.out.println("Bugs.dat not found");
    }
  }
}

И это содержимое файла (называемого «ошибками»), на который программа должна смотреть:

1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10

Когда я запустить программу, она выдаст следующее:

Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
    at lab8.Bugs.main(Bugs.java:31)

1 Ответ

1 голос
/ 06 апреля 2020

Ваш do-while l oop не увеличивает ваш счетчик. Кроме того, я не уверен, почему вы добавляете counter++ в вашу for l oop, она уже установлена ​​в самой декларации for l oop.

Добавьте counter++ в вашем do-while l oop и удалите его изнутри for l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...