【发布时间】:2013-12-26 21:02:16
【问题描述】:
我正在调查为什么 scan.nextInt() 从第二次迭代开始消耗前一个整数。任何人都可以理解正在发生的事情并解释“扫描仪不会超过任何输入”的确切含义吗?
请忽略无限循环。它仅用于测试目的。
示例:
输入新数据:0
0
输入数据
再次输入数据:1
执行
输入新数据:1
输入数据
再次输入数据:
while(true)
{
System.out.print("Enter new data: ");
System.out.println(scan.nextInt());
//scan.nextLine(); //must include but I'm not sure why
System.out.println("data entered");
System.out.print("Enter data again: ");
if(scan.hasNextInt())
{
System.out.println("executed");
//scan.nextLine(); //must include this too but not sure why
}
}
【问题讨论】:
-
解释运行此代码时会发生什么,以及您希望看到什么? “[it] 从第二次迭代开始消耗前一个整数”我不清楚。
-
您似乎没有在示例代码中的任何地方调用
nextInt(),但它在您的问题标题中;我错过了什么吗? -
第 4 行,@DavidNorris -
System.out.println(scan.nextInt()); -
确实我错过了一些东西;)谢谢。