Netbeans-NoSuchElementException

Код правильно работает в командной строке Gitbash (GitHub). Однако, когда я компилирую и запускаю его в NetBeans, он дает мне NoSuchElement Exception. Буду признателен, если кто-нибудь поможет мне с NetBeans.

     package MyApp;

     import java.util.Scanner;

     public class MyApp {
     /** 
     * Starts the program 
     * 
     * @param args command line arguments 
     */
     public static void main(String[] args) {
        // welcome the user to MyApp
        System.out.println("Welcome to MyApp");
        System.out.println();  // print a blank line

        // create a Scanner object named sc
        Scanner sc = new Scanner(System.in);

        // check if the number you enter is even or odd until choice isn't
        equal to "y" or "Y"
        String choice = "y";
        while (choice.equalsIgnoreCase("y")) {
            // get the integer from the user
            System.out.print("Enter an integer:   ");
            double integer = sc.nextDouble();

            // check whether it is even or odd
            if (integer % 2 == 0) {
              System.out.println("It is an even integer");
            } else {
                System.out.println("It is an odd integer");  ;
            }

            // see if the user wants to continue
            System.out.print("Continue? (y/n): ");
            choice = sc.next();
            System.out.println(); 
        }
    }
}

person user11619730    schedule 08.06.2019    source источник
comment
Как запустить программу с помощью GitHub? И не могли бы вы опубликовать трассировку стека исключения?   -  person DasElias    schedule 09.06.2019
comment
Я использовал командную строку Gitbash (GitHub) для запуска кода. Сообщение об ошибке — введите целое число: исключение в потоке main java.util.NoSuchElementException в java.base/java.util.Scanner.throwFor(Scanner.java:937) в java.base/java.util.Scanner.next(Scanner. java:1594) в java.base/java.util.Scanner.nextDouble(Scanner.java:2564) в MyApp.MyApp.main(MyApp.java:31)   -  person user11619730    schedule 09.06.2019
comment
Я предполагаю, что смешивание next() и nextDouble() может вызвать проблему. Попробуйте использовать Double.parseDouble(sc.nextLine()) и sc.nextLine().   -  person DasElias    schedule 09.06.2019
comment
@DasElias Тем не менее, я получаю то же самое NoSuchElementException Введите целое число: Исключение в потоке main java.util.NoSuchElementException: строка не найдена в java.base/java.util.Scanner.nextLine(Scanner.java:1651) в MyApp.MyApp .main(MyApp.java:32)   -  person user11619730    schedule 09.06.2019
comment
Изменить на sc.nextInt();   -  person Angelo Mendes    schedule 09.06.2019
comment
@AngeloMendes Это не работает. Он выдает сообщение об ошибке, в котором говорится, что строка не может быть преобразована в целое число.   -  person user11619730    schedule 09.06.2019
comment
У меня работает: onlinegdb.com/r1MjkRFAV. Я также делаю тест в NetBeans.   -  person Angelo Mendes    schedule 09.06.2019
comment
@AngeloMendes Спасибо за помощь. Возникла проблема в версии NetBeans для Gradle и Maven. Я попытался скомпилировать его в Ant-версии NetBeans, и это сработало.   -  person user11619730    schedule 09.06.2019


Ответы (1)


Я запустил этот код, и он отлично работает! Единственное, что я изменил, это линия

    //check if number you entered is even or odd until choice isnt 
    equal to "y" or "Y"

Я изменил это на:

    //check if number you entered is even or odd until choice isnt 
    //equal to "y" or "Y"

Хотя иногда сканер застревает на предыдущей вещи, поэтому вы можете попробовать использовать sc.nextLine();, чтобы он перешел на следующую строку и взял символ новой строки.

person Nate Claussen    schedule 28.10.2019