java.util.NoSuchElementException: исключение не найдено в строке при использовании сканера внутри цикла - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть требование принимать входные данные внутри цикла, но я получаю сообщение о проблеме, такое как NoSuchElementException.Не совсем уверен в проблеме.

Чтобы дать некоторую информацию о моем требовании, я должен выполнить функцию, если пользователь постоянно набирает yes, пока пользователь не наберет no.

Код:

    // Toppings
    while(true) {
      Scanner st = new Scanner(System.in);
      System.out.println("Do you need to add more toppings: (yes/no)");
      String decision = st.nextLine();

      if (decision.equals("yes")) {
        cake = toppingOption(cake);
      } else if (decision.equals("no")) {
        st.close();
        break;
      } else {
        System.out.println("Wrong input, type (yes/no)");
      }
    }

Ответы [ 2 ]

0 голосов
/ 28 апреля 2019

Мой вопрос не завершен, внутри функции toppingOptions у меня есть другой объект сканера, который я закрываю, поэтому после удаления объектов сканера закройте эту работу.

0 голосов
/ 28 апреля 2019

У вас есть более одного сканера, который вы закрываете, который закрывает базовый InputStream, поэтому другой Scanner больше не может читать из тех же InputStream и NoSuchElementException результатов.

Moveцикл "вне времени"

Scanner st = new Scanner(System.in);
// Toppings
    while(true) {

      System.out.println("Do you need to add more toppings:(yes/no)");
      String decision = st.nextLine();

      if(decision.equals("yes")) {
        cake = toppingOption(cake);
      } 
      else if(decision.equals("no")) {
        st.close();
        break;
      }
      else {
        System.out.println("Wrong input, type (yes/no)");
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...