Java系统输出打印多次

Java系统输出打印多次,java,arraylist,system.out,Java,Arraylist,System.out,有人知道为什么“错!!!”打印了6次吗?这是否与我的数组列表有关,因为其中包含6个人的票证详细信息。 提前谢谢你 public class Method1 { public static void main(String[] arg) { Method1 sc = new Method1(); sc.run(); } private void run() { PersonData p = new PersonData();

有人知道为什么“错!!!”打印了6次吗?这是否与我的数组列表有关,因为其中包含6个人的票证详细信息。 提前谢谢你

public class Method1 {

public static void main(String[] arg) {
        Method1 sc = new Method1();
        sc.run();
    }

    private void run() {
        PersonData p = new PersonData();
        List<PersonType> personDetailsList = (List<PersonType>) p.getList();
        int input;
        try {
            do {
                Scanner in = new Scanner(System.in);
                System.out.println("Enter person ticket number");
                input = in.nextInt();
                for (PersonType q : personDetailsList) {
                    if (q.getPersonNumber() == input) {
                        System.out.println("Person Ticket Number: " + q.getPersonNumber() + "\n" 
                                + "Person Ticket Name: " + q.getPersonName() + "\n");
                        break;
                    }

                    else if (q.getPersonNumber() != input) {
                    System.out.println("Wrong!!!");     

                    }
                }
            } while (input != -1);
            System.out.println("Bye");
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
公共类方法1{
公共静态void main(字符串[]arg){
Method1 sc=新方法1();
sc.run();
}
私家车{
PersonData p=新PersonData();
List personDetailsList=(List)p.getList();
int输入;
试一试{
做{
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入个人票号”);
input=in.nextInt();
for(PersonType q:personDetailsList){
if(q.getPersonNumber()==输入){
System.out.println(“个人票号:”+q.getPersonNumber()+“\n”
+“个人票证名称:”+q.getPersonName()+“\n”);
打破
}
else if(q.getPersonNumber()!=输入){
System.out.println(“错误!!!”;
}
}
}while(输入!=-1);
System.out.println(“再见”);
}捕获(例外e){
系统输出打印ln(e);
}
}
}
试试这个

private void run() {
        PersonData p = new PersonData();
        List<PersonType> personDetailsList = (List<PersonType>) p.getList();
        int input;
        boolean flag = false;
        try {
            do {
                Scanner in = new Scanner(System.in);
                System.out.println("Enter person ticket number");
                input = in.nextInt();
                for (PersonType q : personDetailsList) {
                    if (q.getPersonNumber() == input) {
                        System.out.println("Person Ticket Number: " + q.getPersonNumber() + "\n" 
                                + "Person Ticket Name: " + q.getPersonName() + "\n");
                        flag=true;                           
                        break;
                    }
                }
                if(!flag){
                    System.out.println("Wrong!!!");     
                }
            } while (input != -1);
            System.out.println("Bye");
        } catch (Exception e) {
            System.out.println(e);
        }
    }
private void run(){
PersonData p=新PersonData();
List personDetailsList=(List)p.getList();
int输入;
布尔标志=假;
试一试{
做{
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入个人票号”);
input=in.nextInt();
for(PersonType q:personDetailsList){
if(q.getPersonNumber()==输入){
System.out.println(“个人票号:”+q.getPersonNumber()+“\n”
+“个人票证名称:”+q.getPersonName()+“\n”);
flag=true;
打破
}
}
如果(!标志){
System.out.println(“错误!!!”;
}
}while(输入!=-1);
System.out.println(“再见”);
}捕获(例外e){
系统输出打印ln(e);
}
}

请提供PersonData的代码。您正在为列表中的每个人打印该代码,其中
getPersonNumber
返回的数字与输入的数字不相同。您列表中的任何人的数字可能都与您输入的数字不相等。请注意,如果有6个人,并且您的输入与其中一个人的人号不匹配,您仍然会输出“错误!!!!”五次(除非他们都有相同的人号)。为什么
PersonData.getList()
的返回类型还没有
List
?为什么要选演员?这个问题提醒我们。如果两者都是你的,为什么还要费心从几个帐户创建和发布呢?如果你描述一下你在这里所做的更改,而不仅仅是转储一些代码,可能会有所帮助。