У меня возникают проблемы с этим фрагментом кода при использовании класса Scanner. При вводе варианта 1 или 2 все проходит гладко, программа выполняет их и показывает исходное меню для ввода с клавиатуры нового параметра. Проблема связана с вариантом 3, поскольку он выполняется идеально, но при отображении начального меню с параметрами Сканер не ждет ввода с клавиатуры от пользователя и выдает следующее исключение:
(Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:962)
at java.base/java.util.Scanner.next(Scanner.java:1503)
at practicas.Main.main(Main.java:50)
Я читал, что закрытие любого объекта Scanner(System.in) приведет к закрытию всех созданных объектов Scanner, но также и то, что если я создам несколько объектов Scanner и закрою один из них , не повлияет на другие объекты. Может ли кто-нибудь помочь понять работу сканера для чтения входных данных?
Заранее спасибо.
public static void main(String[] args)
{
// TODO Auto-generated method stub
int opcion=-1;
Scanner scan=new Scanner(System.in);
while (opcion!=0)
{
System.out.println("Introduce la opción deseada:");
System.out.println("0: Salir");
System.out.println("1: Calcular promedio de enteros");
System.out.println("2: Idioma de animales");
System.out.println("3: escribir y leer de un fichero");
try
{
opcion=scan.nextInt();
switch (opcion)
{
case 0:
break;
case 1:
{
calcularPromedio();
break;
}
case 2:
{
hablaDeAnimales();
break;
}
case 3:
{
leerYEscribir();
break;
}
}
}
catch(Exception e)
{
System.out.println("La opción introducida no es un número entero "+e);
}
}
scan.close();
System.out.println("Gracias!");
}
private static void calcularPromedio()
{
int [] enteros= {10,20,30,40,50};
int suma=0;
double promedio=0;
for (int index=0;index
Подробнее здесь: https://stackoverflow.com/questions/793 ... -exception
Класс сканера не ждет ввода данных от клиента и выдает исключение ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение