do
{
ch = (char)System.in.read();
System.out.print(ch);
}while(ch != '\n');
我认为这个循环会重复,直到我输入一个新行?我输入一个字符后终止后不确定我做错了什么。
答案 0 :(得分:0)
输入第一个字符后,while循环条件将成功,并等待do-while内部用户的输入。如果你现在按enter
一个新行字符,在这种情况下,while条件失败。简而言之,您的代码按预期工作。
<强>测试强>
aa(if you press enter key now)
while condition failed.
答案 1 :(得分:0)
您的程序有效,但在按输入之前,您的循环并非真正开始。
System.in.read
阻止,直到在控制台输入换行符。因此,如果按 a b c \ n ,程序将暂停{{1} } -line,直到你按输入(System.in.read()
)。
当按下 enter 时,您的程序将启动并回显该行给用户。
原因在于您的控制台的配置方式。通常,终端处于“熟”模式,这使您可以使用退格键并编辑您键入的字符。您还应该能够将控制台设置为“原始”模式(绕行行编辑并且不需要输入键)。这可能会产生你想要的结果。在UNIX系统上,'stty'命令可以改变模式。
答案 2 :(得分:-1)
试试这个
while(ch!= 13);
13是输入
的ASCI值