Search code examples
javaarraylistsystem.out

Java system out println printing more than once


does anyone know why "Wrong!!!" is printing out 6 times? Is this something to do with my array list as it contains 6 person ticket details in it. Thank-you in advance...

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);
        }
    }
}

Solution

  • try this

    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);
            }
        }