Код: Выделить всё
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:945)
at java.base/java.util.Scanner.next(Scanner.java:1602)
at java.base/java.util.Scanner.nextInt(Scanner.java:2267)
at java.base/java.util.Scanner.nextInt(Scanner.java:2221)
at Question2.readArray(Question2.java:73)
at Question2.main(Question2.java:29)
Код: Выделить всё
public static void readArray() throws FileNotFoundException {
int count2, lessThan, greatThan;
int[] numArray = new int[5];
try (Scanner myRead = new Scanner(new File("C:/Users/cgva1/Documents/COP 1000/Exam2.dat"))) {
count2 = 0;
lessThan = 0;
greatThan = 0;
System.out.println("Reading numbers from a file...");
System.out.println(" ");
System.out.println("The numbers are:");
while (myRead.hasNextLine()) {
numArray[count2] = myRead.nextInt();
System.out.println(numArray[count2]);
if (numArray[count2] < 5) {
lessThan = lessThan + 1;
} else {
greatThan = greatThan + 1;
}
count2 = count2 + 1;
}
System.out.println(Integer.toString(greatThan) + " of the numbers are greater than 5.");
System.out.println(Integer.toString(lessThan) + " of the numbers are 5 or less.");
}
}
Код должен принимать 5 чисел из От 1 до 10, просуммируйте эти 5 чисел, запишите в файл, прочитайте из файла и определите, сколько из них больше 5, а сколько меньше f (это этот метод).
Код введет 5 чисел, выдаст сумму, запишет в файл и прочитает числа из того же файла, а затем я получу ошибку, прежде чем он выполнит большую часть и меньшую часть.
Есть предложения?
Я думал, что count2 получает лишнюю цифру и поэтому ищет несуществующий элемент массива. Я разместил оператор IF, если count2 < 5, то count2 = count2 +1, но все равно получаю ту же ошибку.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -exception
Мобильная версия