package semster2lab9; import java.util.Scanner; public class TestPerson { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Person p[]=new Person[3]; p[0]=new Person(sc.nextLine(),sc.nextLine(),sc.nextInt()); p[1]=new Person(sc.nextLine(),sc.nextLine(),sc.nextInt()); p[2]=new Person(sc.nextLine(),sc.nextLine(),sc.nextInt()); System.out.println("Person 1 is called "+p[0].getName()); System.out.println("They live in "+p[0].getAddress()); System.out.println("Their PPS Number is"+p[0].getppsNo()); p[1].setName("Paul Smyth"); p[1].setAddress("Dublin"); for(int i=0;i<3;i++) { System.out.println("*****PERSONAL DETAILS*****"); p[0].showPerson(); p[1].showPerson(); p[2].showPerson(); } System.out.print(p[2].toString()); } }
时间: 2024-02-13 13:05:13 浏览: 137
春数据库实验表的创建管理和数据操纵样本.doc
这代码的问题可能是输入不匹配。在第 8、11 和 14 行中,您正在尝试通过调用 `nextInt()` 来获取输入,但是如果输入不是整数,就会抛出 `InputMismatchException`。因此,如果您输入了一个不是整数的值,就会发生异常。
为了解决这个问题,您可以考虑使用 `nextLine()` 方法获取输入,并将其转换为适当的类型。例如,您可以像这样修改代码:
```
p[0] = new Person(sc.nextLine(), sc.nextLine(), Integer.parseInt(sc.nextLine()));
p[1] = new Person(sc.nextLine(), sc.nextLine(), Integer.parseInt(sc.nextLine()));
p[2] = new Person(sc.nextLine(), sc.nextLine(), Integer.parseInt(sc.nextLine()));
```
这样,您将首先获取一个字符串,然后将其转换为适当的类型,以避免输入不匹配的问题。
阅读全文