有没有人知道为什么我的nextLine()
在以下代码中的for循环之后无效?它总是跳过nextLine()
并直接转到if
语句。
int[] a = new int[3]
for(int i=0; i<3;i++)
{
a[i] = nextInt();
}
String b = nextLine();
if(b == "go")
{
.......
}
else
{
.....
}
答案 0 :(得分:3)
我猜你也许正在做的是要求用户输入整数,然后按回车键。当它解析整数时,它只解析并删除整数。但当然,他们所推出的换行仍然在流。然后当你要求nextLine()
时,它会立即返回,因为流中已经有一条线(以换算的整行结束的一条线)。也许你实际上期望nextLine()
在输入整数之后等待额外的一行,但这不是正在发生的事情。这是对的吗?
答案 1 :(得分:0)
你不工作是什么意思?你的意思是说nextLine()方法没有被调用。根据您粘贴的代码,它将100%调用nextLine()方法。
答案 2 :(得分:0)
应始终在那里执行涉及nextLine
的语句(除非抛出异常)。您没有显示nextLine
的实施。你确定它没有被执行。分散的System.err.println("blah")
可能会有所帮助。
Btw:字符串比较几乎肯定是b.equals("go")
。如果b
可能null
要么明确检查,要么写出"go".equals(b)
。