Вы должны поймать исключение, выдаваемое, когда пользователь не вводит двойное число, попросить пользователя попытаться снова вставить двойное и продолжать цикл в той строке, где вы пытаетесь прочитать двойное число, пока пользователь фактически не введетдвойной.В качестве альтернативы вы можете использовать операторы while(true)
и break
вместо этого, когда пользователь вводит двойное число, возможно, это чище, но это более читабельно.
public static double[] getscores() {
int numscores = 8;
double score[] = new double[numscores];
for (int a = 0; a < numscores; a++) {
Scanner ip = new Scanner(System.in);
System.out.println("Enter a score");
boolean isDouble = false;
do {
try {
score[a] = ip.nextDouble();
isDouble = true;
} catch (InputMismatchException ex) {
System.out.println("You didn't enter a double, please try again");
}
} while (!isDouble);
}
return score;
}