Как разрешить NoSuchElementException в java

Я написал код, как показано:

что еще я должен включить, чтобы удалить это исключение NoSuchElementFound

Я пытался включить HasMoreElements(), HasNextInt(), но это тоже не сработало

Scanner input=new Scanner(System.in);
    t=input.nextInt();
    while(t>0)
    {
        int n=input.nextInt();
        int a[]=new int[n];

пожалуйста, попробуйте изменить этот код, чтобы я не получил это исключение.

Этот код вообще компилируется?

lealceldeiro 01.05.2019 08:15
Scanner input = new Scanner(System.in); while (input.hasNextInt()) { int n = input.nextInt(); if (n > 0) { int a[] = new int[n]; } }
corroborator 01.05.2019 08:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
46
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

я думаю, вам нужно объявить 't'

Scanner input=new Scanner(System.in);
int t=input.nextInt();
while(t>0)
{
    int n=input.nextInt();
    int a[]=new int[n];
}
Ответ принят как подходящий
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            int n = input.nextInt();
            int a[] = new int[n];
            ...
        }

Это исключение выдается, чтобы указать, что в буфере больше нет элементов, но ваш код ожидает один, и на основе кода, которым вы поделились, ожидаются следующие две возможности: -

  1. Переменная t не уменьшается: вы должны добавить 't--' в качестве последнего оператора в вашем цикле, а также перед любым оператором continue, который вы используете.
  2. В самом вводе отсутствует необходимое количество целых чисел : Для этого вы можете использовать любой из подходов, предложенных Мэтью или Сачином. Поскольку вы утверждаете, что метод hasNextInt() не работает, вам следует обновить исключение/ошибку и соответствующий код для лучшего понимания ситуации.

Надеюсь, поможет!

Другие вопросы по теме