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)
。