Java, сканер, исключение несоответствия ввода
Эта часть кода должна загружать имя ресторана, затем имя меню, затем название еды и цену, но когда я запускаю ее, она принимает все имена, а затем, когда наконец получается цена, я ввожу, например, 7.2 и получаю исключение несоответствия ввода
String newMenu = "";
String newRestaurant = "";
String[] newMenuItem = new String[10];
double[] price = new double[10];
int x = 0;
while (!(newMenu.equals("none"))) {
System.out.println("What is the name of the Menu you wish to create (type 'none', if you are done):");
newMenu = scan.next();
if (newMenu.equals("none")) {
System.out.println("Saving entry...");
continue;
} else {
System.out.println("What is the name of the Menu item you wish to create (type 'none', if you are done):");
newMenuItem[x] = "end";
while (!(newMenuItem[x].equals("none"))) {
newMenuItem[x] = scan.next();
if (!(newMenuItem[x].equals("none"))) {
System.out.println("What is the price?");
price[x]= scan.nextDouble();
x++;
}
}
}
}
1 ответ
Если я понимаю ввод вашей программы, самое простое решение было бы добавить что-то вроде этого между строками 79 и 80,
while (!scan.hasNextDouble()) {
// The next token isn't a double.
if (scan.hasNext()) {
scan.next();
} else {
System.err.println("Nothing to read");
System.exit(1);
}
}
Потому что в настоящее время ваш Scanner
не имеет следующий символ как double
,