Java Add方法和while循环未正确执行
这个程序是一个通讯录。有一个contact类和contact book类。当我执行案例2时,contact book类中的add方法不允许我单独输入姓名和电话号码。“输入姓名”和“输入地址”同时出现 以下是主方法中的开关情况:Java Add方法和while循环未正确执行,java,Java,这个程序是一个通讯录。有一个contact类和contact book类。当我执行案例2时,contact book类中的add方法不允许我单独输入姓名和电话号码。“输入姓名”和“输入地址”同时出现 以下是主方法中的开关情况: while (!done) { ContactBook cb = new ContactBook(); System.out.println("1) List all contacts" + "\n" + "2) Ad
while (!done)
{
ContactBook cb = new ContactBook();
System.out.println("1) List all contacts" + "\n" + "2) Add a contact"
+ "\n" + "3) Update a contact" + "\n" + "4) Remove a contact" +
"\n" + "5) Quit");
userChoice = sc.nextInt();
switch (userChoice)
{
case 1:
c.toString();
break;
case 2:
cb.add(sc);
break;
case 3:
cb.update(sc);
break;
case 4:
cb.remove(sc);
}
if (userChoice == 5);
{
done = true;
}
}
}
以下是contact book类中的add方法:
public void add (Scanner sc)
{
Contact c = new Contact(name, address, phone, email);
System.out.println("Enter a name: ");
c.setName(sc.nextLine());
System.out.println("Enter an address: ");
c.setAddress(sc.nextLine());
System.out.println("Enter a phone number: ");
c.setPhone(sc.nextLine());
System.out.println("Enter an email: ");
c.setEmail(sc.nextLine());
entries = Arrays.copyOf(entries, entries.length + 1);
}
我想这应该能解决你的问题
System.out.print("Enter a name: ");
c.setName(sc.nextLine());
System.out.println()
您需要更改以下内容:
userChoice = sc.nextInt();
到
nextInt
不使用输入中的新行,您需要在nextInt()之后激发空白sc.nextLine()。在使用扫描器时,请确保为新行刷新缓冲区。下一次,请先阅读并尝试以下内容:在我提问之前,我已经尽了我所能。这个问题非常具体,只包括我需要的部分课程。我要感谢你的回答,这是非常有用的。我被卡住了,一直在书中搜索,一行一行地追踪我的程序,这就是为什么我转向堆栈以获得一个人类的视角:)好安瑟先生!
userChoice = Integer.valueOf(sc.nextLine());