我花了几天的时间开始学习编码(Java),我发现了这个问题。
这对于循环程序非常简单,在用户在键盘上输入“ S”后,循环将停止执行。效果很好,但是如果输入错误,循环将执行3次,而不是仅仅执行一次。
class ForTest {
public static void main (String[]args)
throws java.io.IOException {
int i;
System.out.println("Press S to stop.");
for(i = 0; (char) System.in.read() != 'S'; i++)
System.out.println("Pass #" + i);
}
}
当我输入错误的输入时,输出应为:
Pass #0
但是实际输出是:
Pass #0
Pass #1
Pass #2
此外,如果我输入的错误输入超过一个字符,它总是会提供2个额外的输出。假设我输入了ABC(3个字符)。输出将是:
Pass #0
Pass #1
Pass #2
Pass #3
Pass #4
问题出在代码上吗?谁能解释原因并分享解决方案?
注意:我试图在命令提示符和Eclipse上运行代码。两者具有相同的输出。
TY,
答案 0 :(得分:1)
我认为是因为在输入“ ABC”后按Enter键时回车符和换行符所致。