Exception in thread “main” java.util.NoSuchElementException

150
23 апреля 2019, 18:40

При компиляции следующего кода на hyperskill.org выскакивает ошибка данного характера :

Failed test #1. Runtime error
Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    at java.base/java.util.Scanner.next(Scanner.java:1478)
    at Main.main(Main.java:29)

При компиляции в repl.it и в Intelij IDEA ошибок не возникает, код запускается стабильно. Проблема в компиляторе Hyperskill'a или же где-то кроется ошибка?

Код программы :

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        int water = 1200;
        int milk = 540;
        int coffee = 120;
        int cups = 9;
        int money = 550;
        Scanner in = new Scanner(System.in);
        while(true){


            System.out.println("The coffee machine has:");
            System.out.println( water + " of water");
            System.out.println( milk + " of milk");
            System.out.println( coffee + " of coffee beans");
            System.out.println( cups + " of disposable cups");
            System.out.println( money + " of money");
            System.out.print("Write action (buy, fill, take) : ");
            String string = in.nextLine();
            switch (string){
                case "buy":{
                    System.out.print("What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino: ");
                    int coffeeType = in.nextInt();
                    switch (coffeeType) {
                        case 1:{
                            water = water - 250;
                            coffee = coffee - 16;
                            money = money + 4;
                            cups--;
                            break;
                        } case 2: {
                            water = water - 350;
                            milk = milk - 75;
                            coffee = coffee - 20;
                            money = money + 7;
                            cups--;
                            break;
                        }case 3:{
                            water = water - 200;
                            milk = milk - 100;
                            coffee = coffee - 12;
                            money = money + 6;
                            cups--;
                            break;
                        }default:{ System.out.println("Wrong character. Make an order again");
                            break;}
                    }
                } case "fill" : {
                    System.out.print("Write how many ml of water do you want to add: ");
                    int fWater = in.nextInt();
                    water = water + fWater;
                    System.out.print("Write how many ml of milk do you want to add: ");
                    int fMilk = in.nextInt();
                    milk = milk + fMilk;
                    System.out.print("Write how many grams of coffee beans do you want to add: ");
                    int fCoffee = in.nextInt();
                    coffee = coffee + fCoffee;
                    System.out.print("Write how many disposable cups of coffee do you want to add: ");
                    int fCups = in.nextInt();
                    cups = cups + fCups;
                    break;
                }case "take":{
                    System.out.println("I gave you $" + money + " ");
                    money = 0;
                    break;
                }default: {
                    break;
                }

            }

        }
    }
}
Answer 1

У вас в цикле идет считывание строки (вместе с EOL), а потом целое (без EOL). В итоге, когда выполняется следующая итерация, вы считываете не ожидаемую строку, а EOL, который остался после nextInt(). Соответственно, следующий nextInt() читает не число, а строку. После внешнего switch добавьте nextLine();

READ ALSO
jetty websocket server

jetty websocket server

Пытаюсь написать веб сокет сервер на jettyВопрос достаточно не определенный, но надеюсь кто-то знает ответ

146
Проблема с Runtime.getRuntime().exec() Java

Проблема с Runtime.getRuntime().exec() Java

Пытаюсь запустить команду для командной строки с помощью RuntimegetRuntime()

140
Помогите с адаптивным гридом

Помогите с адаптивным гридом

Вроде простая задача и скорее всего решение какое то очевидное, но я что-то запуталсяЯ конечно могу что то закостылять индивидуально для...

162
Нужна помощь, с установкой gulp-sass!

Нужна помощь, с установкой gulp-sass!

на самом деле всё установлено, но когда я пишу некоторые стили в mainsass компилируется в main

181