java while循环错误?附加输出代码有什么问题?
-首先,我给输入一个'r',预期的输出是“Hir”,然后是输入选项,但收到的输出是Hir,Hi,Hi,然后是输入选项。为什么它会显示另外两个Hi,Hi?我怀疑您在windows计算机上运行此操作,并在“r”之后按Enter键。如果不是这样,忽略这个答案 enter被理解为换行符,在windows上由两个字节组成java while循环错误?附加输出代码有什么问题?,java,loops,while-loop,Java,Loops,While Loop,-首先,我给输入一个'r',预期的输出是“Hir”,然后是输入选项,但收到的输出是Hir,Hi,Hi,然后是输入选项。为什么它会显示另外两个Hi,Hi?我怀疑您在windows计算机上运行此操作,并在“r”之后按Enter键。如果不是这样,忽略这个答案 enter被理解为换行符,在windows上由两个字节组成0D 0A。在字符串文本中,它们通常表示为“\r\n” 这将导致读取三个字符:'r'、'\r'(字符13)和'\n'(字符10) 您的代码单独处理它们,因此输出是 class demoWh
0D 0A
。在字符串文本中,它们通常表示为“\r\n”
这将导致读取三个字符:'r'、'\r'(字符13)和'\n'(字符10)
您的代码单独处理它们,因此输出是
class demoWhile{
public static void main(String args[])
throws java.io.IOException{
char ch = (char)System.in.read();
while(ch!='w'){
System.out.println("Hi"+ch);
ch = (char)System.in.read();
}
}
}
Hir
你好\r\n
嗨\n
但是\r和\n不会显示,因为它们只有在您将它们组合在一起时才起作用。我怀疑您在windows计算机上运行此操作,并在“r”之后按Enter键。如果不是这样,忽略这个答案 enter被理解为换行符,在windows上由两个字节组成
0D 0A
。在字符串文本中,它们通常表示为“\r\n”
这将导致读取三个字符:'r'、'\r'(字符13)和'\n'(字符10)
您的代码单独处理它们,因此输出是
class demoWhile{
public static void main(String args[])
throws java.io.IOException{
char ch = (char)System.in.read();
while(ch!='w'){
System.out.println("Hi"+ch);
ch = (char)System.in.read();
}
}
}
Hir
你好\r\n
嗨\n
但是\r和\n不会显示,因为它们只有在您将它们组合在一起时才起作用。您是在windows上运行此命令,然后在“r”之后按Enter键吗?您是在windows上运行此命令,然后在“r”之后按Enter键吗?有没有办法避免?据我所知,您只需要按Enter键来向shell发出信号(命令提示)您正在使用的输入是完整的。linebreak然后向shell发送信号,将所有输入转发到应用程序。当
ch==13 | | ch==10
时,您可以通过不打印/执行任何操作来“过滤”此输入。。这将起作用我从一本书中得到这一点..有什么方法可以避免吗?据我所知,您只需要输入来向shell(命令提示符)发出信号,表明您正在使用的输入已完成。linebreak然后向shell发送信号,将所有输入转发到应用程序。当ch==13 | | ch==10
时,您可以通过不打印/执行任何操作来“过滤”此输入。。这会有用的我从一本书上得到的。。