我正在测试一些代码,遇到了一些有趣的东西,而我需要专家的意见。
一个简单的程序,当输入为s
时停止循环,但似乎在每个输入上循环都重复了两次,我想这是因为IO延迟。如果我错了请纠正我。
public static void main(String[] args) throws java.io.IOException {
int i;
System.out.println("Type s to stop.");
for(i = 0; ; i++) {
char value = (char) System.in.read();
if(value=='s'){
break;
}
System.out.println("Pass # " + i);
}
}
输出:
答案 0 :(得分:2)
当您输入一个字符a
作为输入时,实际上输入了两个字符。
a
\n
但是,当您读取char
时,它会逐一读取。因此,它循环了两次。