Java 固执己见
我不明白为什么这个方法从第一行直接到最后一行,而不运行中间的东西,很可能是非常简单的东西Java 固执己见,java,methods,Java,Methods,我不明白为什么这个方法从第一行直接到最后一行,而不运行中间的东西,很可能是非常简单的东西 public void addAdress() { System.out.println("Do you want to add " + this.getName() + "´s Adress?Y or N?"); afirmativeanswer = true; while (afirmativeanswer) { answer = input.nextLine(
public void addAdress() {
System.out.println("Do you want to add " + this.getName() + "´s Adress?Y or N?");
afirmativeanswer = true;
while (afirmativeanswer) {
answer = input.nextLine();
if (answer.equals("y")) {
System.out.println("Enter " + this.getName() + "´s Adress!");
answer = input.nextLine();
this.setAdress(answer);
afirmativeanswer = false;
} else if (answer.equals("n")) {
System.out.println("You choose not to add " + this.getName() + "´s Adress!");
afirmativeanswer = false;
} else {
System.out.println("Please enter y or n");
}
}
}
勾选:
System.err.println(“”+answer+“”)代码>紧跟在answer=input.nextLine()之后代码>检查:System.err.println(“““+answer+””)代码>紧跟在answer=input.nextLine()之后
使用input.next()
而不是input.nextLine()
原因是nextLine()方法将返回缓冲区中的下一行,因此它不会每次都要求您输入
有关更多信息,请查看扫描仪文档
使用input.next()
而不是input.nextLine()
原因是nextLine()方法将返回缓冲区中的下一行,因此它不会每次都要求您输入
有关更多信息,请查看扫描仪文档
无法输入任何内容,代码直接从第一个system.out.println运行到else Station的最后一个。第一行打印什么?这段代码应该可以工作。也许你的输入扫描仪有问题。你能再给一些代码吗?如果input=newscanner(System.in)
,这段代码实际上是有效的。问题不在上述代码中。投票关闭。代码运行良好。。。(假设输入是新扫描仪(System.in)
)无法输入任何内容,代码直接从第一个System.out.println运行到else Station的最后一个。第一行打印什么?这段代码应该可以工作。也许你的输入扫描仪有问题。你能再给一些代码吗?如果input=newscanner(System.in)
,这段代码实际上是有效的。问题不在上述代码中。投票关闭。代码运行良好。。。(假设输入是新扫描仪(System.in)
),这并不能回答问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-此外,执行System.err.println(“““+answer+””)总是更安全的代码>-“
s将使空白或换行符问题在输出中更加明显。@Danielson它提供了一种方法来检测问题是什么(可能是哪里),因为代码可以工作,正如tucuxi所说。我同意printlns很好。。。并且有助于调试。。。您的答案更像是一个注释,因为它可以帮助调试问题,但它(本身)不是answerI did System.err.println(““+answer+””);就像你说的guilaume girod vitouchk和我在代码跳转到最后一个系统之前得到了两个红色的东西。out.println,这意味着什么?这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-此外,执行System.err.println(“““+answer+””)总是更安全的代码>-“
s将使空白或换行符问题在输出中更加明显。@Danielson它提供了一种方法来检测问题是什么(可能是哪里),因为代码可以工作,正如tucuxi所说。我同意printlns很好。。。并且有助于调试。。。您的答案更像是一个注释,因为它可以帮助调试问题,但它(本身)不是answerI did System.err.println(““+answer+””);就像你说的,guilaume girod vitouchk和我在代码跳转到最后一个系统之前得到了这两个红色的东西。out.println,这意味着什么?不是真的,如果用户在每次输入后都按“enter”键,上面的代码在没有这些next()
的情况下工作正常,这在控制台应用程序中是正常的行为。它与input.next()一起工作,虽然我不明白为什么我的代码中还有3个类似的方法,并且都可以很好地使用input.nextLine,但我甚至复制了上面的代码并粘贴到另一个程序中,它也运行得很好,所以问题解决了……但仍然很困惑!不正确,如果用户在每次输入后按“回车”键,上面的代码在没有这些next()
的情况下可以正常工作,这是控制台应用程序中的正常行为。它与input.next()一起工作,尽管我不明白为什么我的代码中还有3个类似的方法,并且都与input.nextLine一起工作良好,我甚至复制了上面的代码并粘贴到另一个程序中,它也运行得很好,所以问题解决了……但仍然很困惑!