IO延迟在JAVA中的for循环中导致2次迭代

我正在测试一些代码,遇到了一些有趣的东西,而我需要一些专家的意见。


一个简单的程序可以在输入为0时停止循环,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);

        }

    }

输出:

http://img4.mukewang.com/609b893000018ce202820264.jpg

慕田峪7331174
浏览 165回答 1
1回答

摇曳的蔷薇

当输入字符a作为输入时,实际上输入了两个字符。a\n但是,当您阅读时char,它会逐一读取。因此,它循环了两次。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java