2009-04-30 79 views
0

是否有人知道为什么我的nextLine()在下面的代码中的for循环之后无法工作?它总是跳过nextLine()并直接转到if声明。nextLine()在for循环后不工作

int[] a = new int[3] 

for(int i=0; i<3;i++) 
{ 
    a[i] = nextInt(); 
} 

String b = nextLine(); 

if(b == "go") 
{ 
    ....... 
} 
else 
{ 
    ..... 
} 
+0

我认为没有理由发生这种情况,需要更多的细节。你确定你正在运行的代码与你向我们展示的源代码是否相同? – 2009-04-30 09:44:26

回答

0

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

0

涉及nextLine的声明应始终在那里执行(除非抛出异常)。您不会显示nextLine的实施。你确定它没有执行吗?分散的几个System.err.println("blah")可能会有所帮助。

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

3

我猜你可能正在做的是要求用户输入整数,然后按回车。当它解析整数时,它只是解析和删除整数。但他们所压的换行符当然还在流中。然后,当你询问nextLine()时,它会立即返回,因为流中已经有一行(以换行符结尾的整数)。也许你实际上期望nextLine()在整数进入后等待另外一行,但那不是发生了什么。这是正确的吗?