wilma2202 Ответов: 1

В то время как проблема цикла.. Java beginner


Я пытаюсь написать программу, которая берет имя и сумму денег, отправляет короткое благодарственное письмо и зацикливается до тех пор, пока следующая строка не будет "quit"

Его цикл просто прекрасен, но по какой-то причине на втором цикле программа пропускает строку enter и переходит прямо к Int..

boolean keepgoing = true;

while (keepgoing = true)
{



out. println ("как зовут человека?");

Строка personname = keyboard. nextLine();

out. println ("сколько они пожертвовали?");

инт пожертвование = клавиатура.nextInt();

out. println ("дорогой" + personname + "");
out. println ("Спасибо за ваше пожертвование" + donation + " \n");


out. println ("с уважением, Джеймс");

если(personname."равно" ("выход"))

{
keepgoing = false;
}

Что я уже пробовал:

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

1 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, зачем вы обрабатываете имя, если оно все равно "уволено"? Это не "настоящее" имя, это команда для вашей программы - так что переместите свой условный тест сразу после ввода имени и проверьте там.
Если это" подлинное " имя, продолжайте получать пожертвование. Но если это не так, выйдите из цикла.

Во-вторых, почему это не работает? Что ж... это вызов nextInt, который вызывает его - он оставляет новую строку, которая завершает число во входном потоке, поэтому ваш следующий вызов nextLine получает пустую строку вместо пользовательского ввода. Добавьте вызов nextLine после nextInt, чтобы удалить его, и вы исправлены.