Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Process through an array, fill an element, then stop in Java

I’m having a problem where I’m trying to add a name to an array and two amounts to another multidimensional array of equal length to the first.

I’m using a for loop to process the array with an if statement to check if the array is null/0. Is so, then the name/numbers are written to that element. The problem is that it writes to the name/numbers to every element in the array because the entire array is null/0.

Is there a way to get it to search, write the information, then stop?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

    public static void addStudent(String[] nameArray, double[][] fees) {
    
    Scanner input = new Scanner(System.in);
    
    String name; // Initializes name variable to store student name in for loop
    double fees, paid;
    
    System.out.println("Enter Member Name: ");
    name = input.nextLine();
    for (int i = 0; i < nameArray.length; i++) {
        if (nameArray[i] == null) { // Searches for next empty array element to store name
            name = nameArray[i]; // Stores name in empty element
        }
    }
    
    System.out.println("Enter Member Fees: ");
    fees = input.nextDouble();
    for (int j = 0; j < fees.length; j++) { // Searches for empty element, which coincides w/ nameArray element number
        if (fees[j][0] == 0) {
            fees[j][0] = fees; // Stores fee in empty element
        }
    }
    
    System.out.println("Enter Amount Paid: ");
    paid = input.nextDouble();
    for (int k = 0; k < fees.length; k++) { // Searches for empty element, which coincides w/ nameArray element number
        if (fees[k][1] == 0) {
            fees[k][1] = paid; // Stores paid fee in empty element
        }
    }       
    
}

>Solution :

It seems to me that you could acheive everything in one loop as follows:

    public static void addStudent(String[] nameArray, double[][] fees) {
    
    Scanner input = new Scanner(System.in);
    
    String name; // Initializes name variable to store student name in for loop
    double fees, paid;
    
    System.out.println("Enter Member Name: ");
    name = input.nextLine();
    System.out.println("Enter Member Fees: ");
    fees = input.nextDouble();
    System.out.println("Enter Amount Paid: ");
    paid = input.nextDouble();    
    
    for (int i = 0; i < nameArray.length; i++) {
        nameArray[i] = name; // Stores name in empty element
        fees[i][0] = fees; // Stores fee in empty element
        fees[i][1] = paid; // Stores paid fee in empty element
        
    }
}

Also there is no need to check if the element is empty because your for loop starts from 0 and increases in each iteration so the next element in the array will always be empty.

If you really wanna check if it’s empty you could still do it much simpler

    public static void addStudent(String[] nameArray, double[][] fees) {
    
    Scanner input = new Scanner(System.in);
    
    String name; // Initializes name variable to store student name in for loop
    double fees, paid;
    
    System.out.println("Enter Member Name: ");
    name = input.nextLine();
    System.out.println("Enter Member Fees: ");
    fees = input.nextDouble();
    System.out.println("Enter Amount Paid: ");
    paid = input.nextDouble();    
    
    for (int i = 0; i < nameArray.length; i++) {
        if(nameArray[i] == null) {
            nameArray[i] = name; // Stores name in empty element
            fees[i][0] = fees; // Stores fee in empty element
            fees[i][1] = paid; // Stores paid fee in empty element
        }
        
    }
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading