При компиляции следующего кода на 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;
}
}
}
}
}
У вас в цикле идет считывание строки (вместе с EOL), а потом целое (без EOL). В итоге, когда выполняется следующая итерация, вы считываете не ожидаемую строку, а EOL, который остался после nextInt(). Соответственно, следующий nextInt() читает не число, а строку. После внешнего switch добавьте nextLine();
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пытаюсь написать веб сокет сервер на jettyВопрос достаточно не определенный, но надеюсь кто-то знает ответ
Пытаюсь запустить команду для командной строки с помощью RuntimegetRuntime()
Вроде простая задача и скорее всего решение какое то очевидное, но я что-то запуталсяЯ конечно могу что то закостылять индивидуально для...
на самом деле всё установлено, но когда я пишу некоторые стили в mainsass компилируется в main