input.nextLine()不等待输入,并立即运行方法

时间:2014-02-11 05:02:35

标签: java string loops input

我正在做一个允许我将电阻值解码为colours的程序。但是即使在网上搜索解决方案之后,我仍然无法理解为什么我无法修复它。我刚学了4个月左右,所以我非常喜欢这个。

它应该运行如下:菜单>选择1> FirstColour>选择> SecondColour>选择> FourthColour>选择> FifthColour>选择> ShowDecodedColour> LoopToMenu。

但是当我在菜单中选择1时,我立即得到“输入第一个颜色条的编号:无效编号请重新输入您的编号:”

我检查了我的int激活器的值,它总是-1。

请帮忙!

我的代码:http://pastebin.com/ezVHLxYj

这是工作代码,但由于它是可以删除的,教授要求我使用switch函数而不是else-if,还有一些问题,比如将String转换为Int以防止读取输入错误:{{3 }}

1 个答案:

答案 0 :(得分:0)

出现此问题是因为nextInt()未读取用户输入的换行符(当他按 Enter 时)。因此,此换行符保留在缓冲区中,nextLine()方法使用它。这就是为什么看起来nextLine()被跳过了。有关详细信息,请访问此帖:Using nextInt() before nextLine()

备注:

switch(choices) ...中,行

a = Integer.parseInt("0");

可以简单地替换为

a = 0;

每种情况类似。