Java System.in问题

时间:2011-01-16 01:49:46

标签: java java.util.scanner

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

           while (sc.hasNext()) {

               if (sc.next().equals("exit")){
                   System.out.println("EXITING");
                   System.exit(0);
               }  else {
                   System.out.println("IM STILL WORKING ok?");
               }

            }

    }
}

所以这是我前几天写的一段代码,试图想出来(并不重要)。执行此代码的结果是:

eIM还在工作吗?

eIM还在工作吗?

出口

我还在工作吗?

出口

EXITING

有人可以解释为什么会这样吗?我的意思是扫描仪没有捕获单词exit的第一个出现的事实。

2 个答案:

答案 0 :(得分:0)

这段代码是正确的,它对我有用 - 你确定你已经编译并运行了最新的代码吗?

e
IM STILL WORKING ok?
e
IM STILL WORKING ok?
e
IM STILL WORKING ok?
ex
IM STILL WORKING ok?
exit
EXITING

答案 1 :(得分:0)

我想我知道问题是什么。立即复制...按下几次输入按钮(按钮e),然后按下快速返回按钮(输入)。这就是为什么有些行同时具有输入和输出。之后,Scanner无法获得第一次退出。这对我来说没有多大意义,因为我认为我所做的不应该造成任何麻烦。