Добрый вечер! У меня вопрос по задаче "Консоль-копилка" из 5 уровня (Symntax) "Вводить с клавиатуры числа и считать их сумму, пока пользователь не введет слово "сумма".
Вывести на экран полученную сумму."
Я задачу решил! Но у меня вопрос: почему программа вот так неработает:
while (true) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
if (reader.readLine().equals("сумма")) break;
int k = Integer.parseInt(reader.readLine()); // проблемма в этой строчке
n += k;
}
Igor Zagorodniy
41 уровень
ошибка при выполнении
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр Дорофеев Backend Developer в Ай-Теко Expert
24 апреля 2019, 20:36
Программа пытается преобразовать введенное слово "сумма" в число, и кидает исключение, так как не может этого сделать.
0
Igor Zagorodniy
24 апреля 2019, 21:28
До этой строчки сумма не дойдет!
0
Александр Дорофеев Backend Developer в Ай-Теко Expert
24 апреля 2019, 21:40
Ну так все еще интереснее, ты в цикле считываешь с консоли 2 раза...
А попробуй как тест: 1 2 3 сумма
0
Dmitry
24 апреля 2019, 21:44
Поддерживаю Александра Дорофеева, не надо два раза внутри цикла вызывать reader.readLine().
0
Igor Zagorodniy
25 апреля 2019, 20:37
Как понимаю первый read.readLine проверяет на соответствие строки, а другой парсится в Integer и проверяет число
0
Dmitry
27 апреля 2019, 14:22
Каждый раз, когда ты вызываешь read.readLine ты считываешь новую строку. Поэтому присваиваивай значнеие read.readLine в переменную и работай именно с ней.
0