无法理解为什么这个java做while while循环不起作用

时间:2013-02-20 22:16:26

标签: java

 do
 {
  ch = (char)System.in.read();
  System.out.print(ch);
 }while(ch != '\n');

我认为这个循环会重复,直到我输入一个新行?我输入一个字符后终止后不确定我做错了什么。

3 个答案:

答案 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值