我正在做一个允许我将电阻值解码为colours的程序。但是即使在网上搜索解决方案之后,我仍然无法理解为什么我无法修复它。我刚学了4个月左右,所以我非常喜欢这个。
它应该运行如下:菜单>选择1> FirstColour>选择> SecondColour>选择> FourthColour>选择> FifthColour>选择> ShowDecodedColour> LoopToMenu。
但是当我在菜单中选择1时,我立即得到“输入第一个颜色条的编号:无效编号请重新输入您的编号:”
我检查了我的int激活器的值,它总是-1。
请帮忙!
我的代码:http://pastebin.com/ezVHLxYj
这是工作代码,但由于它是可以删除的,教授要求我使用switch函数而不是else-if,还有一些问题,比如将String转换为Int以防止读取输入错误:{{3 }}
答案 0 :(得分:0)
出现此问题是因为nextInt()
未读取用户输入的换行符(当他按 Enter 时)。因此,此换行符保留在缓冲区中,nextLine()
方法使用它。这就是为什么看起来nextLine()
被跳过了。有关详细信息,请访问此帖:Using nextInt() before nextLine()。
备注:强>
在switch(choices) ...
中,行
a = Integer.parseInt("0");
可以简单地替换为
a = 0;
每种情况类似。