I'm currently learning Java and I've hit a snag while studying a method that displays elements in a two-dimensional array. Here's the method I came across:
```java
void displayBidimensionalArray(String[][] strings) {
for (int arrayIndex = 0; arrayIndex < strings.length; arrayIndex++) {
for (int index = 0; index < strings[arrayIndex].length; index++) {
System.out.print(strings[arrayIndex][index] + " ");
}
System.out.println();
}
}
```
I defined this array:
```java
String[][] strings = {
{"one"},
{"Maria", "Jennifer", "Patricia"},
{"James", "Michael"},
{"Washington", "London", "Paris", "Berlin", "Tokyo"}
};
```
My confusion arises because I thought the loop was meant to count and print elements of the array. After the first iteration, shouldn't `arrayIndex` increase by 1? If so, how does the loop run again since `arrayIndex` isn't 0 anymore? I'm not clear on how the loop condition works. Can someone clarify this for me?
2 Answers
You're mixing up the components of the `for` loop! Let’s break it down:
1. `int arrayIndex = 0` initializes your loop variable at 0.
2. `arrayIndex < strings.length` is the condition, which checks if `arrayIndex` is less than the total number of arrays in `strings`.
3. `arrayIndex++` increments the value by 1 after each iteration.
So, yes, `arrayIndex` starts at 0, then goes to 1, and it keeps increasing until it reaches the length of `strings`. You confused the initialization and the condition.
Just remember, the loop runs as long as the condition is true!
I think you're getting caught up in the nesting of the loops. Here’s how they work:
- The outer loop starts running, and for each iteration of that loop, the inner loop runs from the beginning to the end of the current inner array.
- So after the first iteration of the outer loop (when `arrayIndex` is 0), it runs through the inner loop to print all elements in the first array. Then `arrayIndex` gets incremented to 1, and the second array gets processed.
It continues in this fashion until it processes all arrays inside `strings`.
Just focus on how each loop correlates with the arrays you're working through!

Exactly! Each time the outer loop increases `arrayIndex`, you’re pointing to a new inner array to process. It's all about this outer-inner relationship! Just remember, the outer loop dictates how many times the inner loop runs.