Название может выглядеть слишком общим, но вот оно.
Я нашел этот код:
//class, main, etc.
char c;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter e to exit!");
do
{
c=(char)br.read();
System.out.println(c);
}while(c!='q');
/*Example output:
12ae
1
2
a
e */
//Where I type 12ae and press enter initially
Как именно достигается результат, когда println () вызывается каждый раз, когда c присваивается значение, и char может хранить только один символ?
Разве это не должно быть (по моему пониманию):
На первой итерации
1 передается в с,
println (c) называется,
Начинается вторая итерация, 2 пройдено и так далее,
дает вывод:
1
1
2
2
е
е
(Где первое вхождение - это мой ввод после нажатия клавиши ввода, второе - это вывод с символом новой строки из-за свойства println)
Или, так как br является буферизованной строкой, но c может хранить только один символ, после ввода передается только один символ:
В этом случае вывод будет:
12ae
е
в ореховой скорлупе:
Как несколько данных (12ae) передаются за один раз (после того, как я нажал клавишу ввода, после ввода) для повторной печати?
Я действительно запутался и посмотрел онлайн, где я нахожу обычные общие определения (каламбур), но не четкое решение.
Спасибо!