我制作了一个程序,允许用户制作芝士汉堡,然后询问他们是否想要一个副产品,然后询问他们是否想订购另一个芝士汉堡。当我运行程序时,它跳过最后一个if else语句。
String orderAnother = sc.nextLine();
if (orderAnother.equalsIgnoreCase("yes")) {
System.out.println("Great! Another cheeseburger is on its way!");
} else {
System.out.println("Okay! Thanks for stopping at The Burger Shack and have a great day!");
}
有什么不对的我无法弄清楚吗?感谢帮助!
答案 0 :(得分:3)
因为Scanner#nextInt方法不使用输入的最后一个换行符,因此在下次调用Scanner#nextLine
时会消耗该换行符
<强>解决方案强>
触发空白nextLine()
以使用换行符或将nextInt()
更改为nextLine()
并将其解析为整数。
更多详情位于:Scanner is skipping nextLine() after using next(), nextInt() or other nextFoo() methods
答案 1 :(得分:0)
我尝试运行你的代码,我发现了一行:
cheeseburgerParts a = new cheeseburgerParts();
我删除了这一行,然后程序编译没有任何错误,所有的东西都完美无缺。如果由于某种原因你真的使用该行,那么检查该类,该类可能有一些错误。如果这么多次,你应该使用while而不是其他。希望这有帮助。