Adding columns in a jagged array in Java

Good evening;
   I am creating a java file that uses jagged arrays to store the amount that someone has spent for each day of the week.  I have my program adding the total amount spent in the week and also the average spent per day, however when I am trying to calculate the amount spent per day I am running into issues.  Here is my array and my for loop to add the columns and display the values:

        // implement a multidimensional array to represent 1 week
            // for each day of the week (0-6) implement the number of times 
                // money was spent as well as amount spent
        int[][] weekArray = {
            {7, 17, 23},
            {5, 10, 6, 8, 25},
            {13},
            {2, 7, 9, 11, 31, 7, 4},
            {5, 6, 2, 18},
            {},
            {10,22, 8}
        };
        
        // total spent per day
        // sunday
        for (int column = 0; column < weekArray[0].length; column++) {
            int sundayTotal = 0;
            for (int row = 0; row < weekArray.length; row++) {
                sundayTotal += weekArray[row][column];
            }
            System.out.println("The sum for Sunday is $" + sundayTotal +);
        }

Open in new window


I am receiving an error for an array index out of bounds.  I am unable to see where I am accessing an index that does not exist here.  I know this is a simple loop to add the values in each column, but I am stumped as to where this error is coming from, any nudges in the right direction?
AutkastAsked:
Who is Participating?
 
mccarlIT Business Systems Analyst / Software DeveloperCommented:
You are getting that error because I believe you are adding along the wrong dimension. With the code above, on the first iteration of the outer loop you are attempting to add the 7, 5, 13, 2, 5, ?, and the 10 together. Notice the ? in what I just wrote... Your code is trying to access the first element of the 6th array (line 10) but that array is empty so there is NO first element and you get the error that you are seeing.

You need to change the order of the dimensions that you are iterating, ie. start by swapping the two "for" loops that you have.
0
 
AutkastAuthor Commented:
ah ha!  And once I have it switched, as opposed to having the 0 in the "column" loop, I use the length of the "row"!  Great!  That was so easy once you opened my eyes, thank you so much!
0
 
AutkastAuthor Commented:
Thank you, provided direction without giving the full answer, allowing me a chance to learn from my question.
0
 
mccarlIT Business Systems Analyst / Software DeveloperCommented:
Not a problem, glad that I could help! :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.