for循环执行了3次,应该只执行一次

时间:2018-06-23 12:33:27

标签: java for-loop

我花了几天的时间开始学习编码(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,

1 个答案:

答案 0 :(得分:1)

我认为是因为在输入“ ABC”后按Enter键时回车符和换行符所致。