Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2019, 09:37   #1
Tanzani
Новичок
Джуниор
 
Регистрация: 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, так и не смог понять в чем проблема, и проблема ли это. Код такой же как в книге, может после выхода книги язык претерпел изменения и поэтому так срабатывает.
Вопрос: как это решить, и в чем собственно проблема?
Tanzani вне форума Ответить с цитированием
Старый 10.06.2019, 14:02   #2
vexora_man
Пользователь
 
Регистрация: 14.05.2017
Сообщений: 29
По умолчанию

Вызов in.read() получает один байт из буфера потока. Вы нажали B а затем нажали Enter. Нажатие Энтер посылает в буфер два байта (\n и \r)
vexora_man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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