|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.06.2019, 09:37 | #1 |
Новичок
Джуниор
Регистрация: 10.06.2019
Сообщений: 1
|
Вопрос о цикле do-while (java)
Здравствуйте, при изучении книги Герберта Шилдта (Java 8 Руководство для начинающих), столкнулся с проблемой, а именно: при запуске следующего кода, выводятся две лишние строки.
public class Dowhile { public static void main (String args[]) throws java.io.IOException{ char ch; do { System.out.println("Введите любой символ, а затем нажмите <ENTER>"); ch = (char)System.in.read(); } while (ch != 'E'); } } Выглядит это так: Введите любой символ, а затем нажмите <ENTER> В Введите любой символ, а затем нажмите <ENTER> Введите любой символ, а затем нажмите <ENTER> Введите любой символ, а затем нажмите <ENTER> До этого сталкивался с похожей проблемой с циклом for, так и не смог понять в чем проблема, и проблема ли это. Код такой же как в книге, может после выхода книги язык претерпел изменения и поэтому так срабатывает. Вопрос: как это решить, и в чем собственно проблема? |
10.06.2019, 14:02 | #2 |
Пользователь
Регистрация: 14.05.2017
Сообщений: 29
|
Вызов in.read() получает один байт из буфера потока. Вы нажали B а затем нажали Enter. Нажатие Энтер посылает в буфер два байта (\n и \r)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Java. Классы. Создание объектов класса в цикле | Антон Лысенко | Помощь студентам | 0 | 06.04.2014 03:02 |
Вопрос - почему, вызывая много раз метод repaint() в цикле, картинка в окне через некоторое время начинает моргать? | Kagur | Общие вопросы по Java, Java SE, Kotlin | 1 | 17.07.2013 08:25 |
вопрос java | peterson | Помощь студентам | 2 | 25.02.2013 21:40 |
Вопрос по Java | yazZ3va | Помощь студентам | 11 | 08.11.2012 12:36 |
Вопрос по java | megostudent | Помощь студентам | 0 | 06.12.2011 15:49 |