l oop все еще продолжается, даже если логическое значение в то время как false. Я не уверен, что не так. Предполагается, что булева переменная l oop имеет значение false, если они не кэшируют ответ, освобождая вас от l oop, но по какой-то причине программа этого не делает.
public static double getvalue(String unit) {
double answer = 0;
boolean loop = true;
do {
try {
System.out.println("enter the " + unit);
answer = sc.nextDouble();
loop = false;
} catch (Exception e) {
System.out.println("has to be a double");
sc.nextLine();
}
} while (loop);
return answer;
}
* Редактировать: после просмотра моего кода в 11-й раз и после его завершения выясняется, что проблема была в другом l oop наверху, который я не решил правильно, заставляя его продолжать вызывать этот l oop снова и снова. Я исправил это, и теперь это работает. Большое вам спасибо и извините за это