nextLine()在for循环后不起作用

时间:2009-04-30 09:40:50

标签: java

有没有人知道为什么我的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
{
  ..... 
}

3 个答案:

答案 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)