java跳过if else语句

时间:2016-03-28 23:41:02

标签: java if-statement

我制作了一个程序,允许用户制作芝士汉堡,然后询问他们是否想要一个副产品,然后询问他们是否想订购另一个芝士汉堡。当我运行程序时,它跳过最后一个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!");
}

有什么不对的我无法弄清楚吗?感谢帮助!

2 个答案:

答案 0 :(得分:3)

The problem is

  

因为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而不是其他。希望这有帮助。