我无法找到为什么这个方法从第一行直接到最后一行而不运行中间的内容,很可能非常简单。
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");
}
}
}
答案 0 :(得分:0)
在System.err.println("'" + answer + "'");
answer = input.nextLine();
答案 1 :(得分:0)
使用input.next()
代替input.nextLine()
原因是nextLine()方法将返回缓冲区中的下一行,因此每次都不会要求您输入
有关更多信息,请查看扫描仪文档
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html