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();
}
}
}
- 首先我给了输入一个' r'和预期的产量是" Hir"然后输入选项但是接收输出是Hir,Hi,Hi然后是输入选项。为什么它会显示另外两个Hi,嗨?
答案 0 :(得分:5)
我怀疑你是在Windows机器上运行它并在' r'之后按Enter键。如果情况并非如此,请忽略此答案。
输入被理解为换行符,它由Windows上的两个字节0D 0A
组成。在字符串文字中,这些通常表示为"\r\n"
。
这会导致三个字符被读取:' r',' \ r' (char 13)和' \ n' (char 10)。
您的代码会单独处理它们,因此输出为
Hir Hi\r Hi\n
但是\ r和\ n不会显示,因为它们只有在组合它们时才会产生效果(在Windows上)。