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

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

我猜你可能正在做的是要求用户输入整数,然后按回车键。 当它解析整数时,它只解析并删除整数。 但当然,他们所推出的新线仍然在流。 然后当你请求nextLine() ,它会立即返回,因为流中已经存在一条线(一条线在新线中以整数的forms结束)。 也许你实际上期望nextLine()在输入整数之后等待一个额外的行,但这不是正在发生的事情。 这是正确的吗?

不工作是什么意思? 你的意思是说nextLine()方法没有被调用。 根据您粘贴的代码,它将100%调用nextLine()方法。

应该始终在那里执行涉及nextLine的语句(除非抛出exception)。 您没有显示nextLine的实现。 你确定它没有被执行。 分散的一些System.err.println("blah")可能有所帮助。

顺便说一句:字符串比较几乎肯定是b.equals("go") 。 如果b可能为null ,则显式检查或写入表达式"go".equals(b)