programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
• Tim Cooke
• Campbell Ritchie
• Ron McLeod
• Liutauras Vilda
• Jeanne Boyarsky
Sheriffs:
• Junilu Lacar
• Rob Spoor
• Paul Clapham
Saloon Keepers:
• Tim Holloway
• Tim Moores
• Jesse Silverman
• Stephan van Hulst
• Carey Brown
Bartenders:
• Al Hobbs
• Piet Souris
• Frits Walraven

# Two Dimensional Array Question

Ranch Hand
Posts: 46
• Number of slices to send:
Optional 'thank-you' note:
Putting this out there for anyone brave enough to try to nearly draw me a picture, cause I'm just not getting part of this:

Some of the comments are my own..please correct them as needed. I'm not getting the action of the two sets of nested for loops. The way I'm reasoning this is that the "boxes" (from a visual representation) is being counted and thus outputs 0-9 and in an uneven dimension. I understand the lines that initialize the second dimension. I just don't understand *precisely* what the for loops are doing other than incrementing from 0-9. Can someone comment the for loops for me to clarify? Thank you.>

Bartender
Posts: 2700
• Number of slices to send:
Optional 'thank-you' note:
The loops just iterate through the entire array and assign a value to each array element which is incremented each time.

Jennifer Schwartz
Ranch Hand
Posts: 46
• Number of slices to send:
Optional 'thank-you' note:
I think I just need to see this visually or something, because I'm not understanding why it's using two sets of nested for loops. Could this example possibly use only 1 nested for loop to get the same result? Everything web site, or video I've watched on 2d arrays use only 1 set of for loops.

lowercase baba
Posts: 13021
66
• Number of slices to send:
Optional 'thank-you' note:
I think of it this way...

a 1 dimensional array is an egg carton. Eggs are what I care about, but an egg carton holds them, and I can make an egg carton of any size.

a 2 dimensional array is a crate of egg cartons. the crate can hold any number of egg cartons, as long as I make it big enough. Each egg carton can then be a different size. One egg carton in my crate may hold 6 eggs, and the next may hold 12. So, the first loop has me look at each egg carton in the crate. The inner loop looks at each egg in the carton I'm currently looking at. Each time I move to a new egg carton, I need to start over and look at each egg. That's why I need the loop inside the loop.

The analogy can continue to higher dimensions:

A palate of crates of cartons of eggs

A truck full of palates full off crates of cartons of eggs

a fleet of trucks full of trucks full of palates full of crates full of cartons full of eggs...

etc.

Jennifer Schwartz
Ranch Hand
Posts: 46
• Number of slices to send:
Optional 'thank-you' note:
I like that analogy! It had crossed my mind that the reason for the second set of loops was because of the fact that it's two dim. Thanks for giving me the visual..sometimes it just takes a picture

Greenhorn
Posts: 13
• Number of slices to send:
Optional 'thank-you' note:
It's because you have "j" columns and "i" rows. The first iteration tells you the row you are in. The second tells you the column:

The data is filled this way (let's say 2 rows and 3 columns)

1

12

123

123
4

123
45

123
456

You start in "i=0" (first row) and it has to wait until "j"(columns) reaches its limit (3 in this case) so "i" can move to the next row.

So i would put it this way

Hope it helps.

Jennifer Schwartz
Ranch Hand
Posts: 46
• Number of slices to send:
Optional 'thank-you' note:
Thanks for breaking it down. I think I've finally got it.

Now, every time I see an array I'm going to see eggs.

All of the comments were very helpful and I'm sure I'll be posting other questions as they come along.