Почему существует исключение в потоке «main» java.util.NoSuchElementException?

1

Это мой код:

import java.util.Scanner;

public class Distribution{

     public static void main(String []args){
        System.out.println("How many cards to be distributed? ");
        Scanner keyboard = new Scanner(System.in);
        int cards = keyboard.nextInt();
     }
}

Когда я запускаю его, он дает мне исключение в main теме:

java.util.NoSuchElementException.

Почему это происходит, и как я могу это исправить?

  • 0
    docs.oracle.com/javase/1.5.0/docs/api/java/util/...
  • 0
    Потому что нет такого элемента?
Показать ещё 6 комментариев
Теги:
exception
input

1 ответ

6
Лучший ответ

Сначала вы должны вызвать hasNextInt()

public static void main(String []args){
    System.out.println("How many cards to be distributed? ");
    Scanner keyboard = new Scanner(System.in);
    if (keyboard.hasNextInt()) {
        int cards = keyboard.nextInt();
        // ...
    }
 }

Когда я пытаюсь использовать эту ссылку для компиляции, она также работает: Изображение 174551

редактировать

Фактический ответ заключался в том, чтобы указать ввод в строке ввода "STDIN" в вашем онлайн-инструменте. Код, который вы опубликовали, работает, когда вы делаете (как показано на этом втором изображении),

Изображение 174551

  • 0
    Это не позволит мне ввести - просто ничего не делает!
  • 0
    @asdf Используете ли вы другой Scanner на System.in в вашем коде? Вы закрываете это? Потому что этот код работает.
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню