Java The Complete Reference, Seventh Edition

(Greg DeLong) #1
for(int j=0; j < 5; j++)
nums[i][j] = (i+1)*(j+1);

// use for-each for to display and sum the values
for(int x[] : nums) {
for(int y : x) {
System.out.println("Value is: " + y);
sum += y;
}
}
System.out.println("Summation: " + sum);
}
}

The output from this program is shown here:

Value is: 1
Value is: 2
Value is: 3
Value is: 4
Value is: 5
Value is: 2
Value is: 4
Value is: 6
Value is: 8
Value is: 10
Value is: 3
Value is: 6
Value is: 9
Value is: 12
Value is: 15
Summation: 90

In the program, pay special attention to this line:

for(int x[] : nums) {

Notice howxis declared. It is a reference to a one-dimensional array of integers. This is
necessary because each iteration of theforobtains the nextarrayinnums, beginning with
the array specified bynums[0]. The innerforloop then cycles through each of these arrays,
displaying the values of each element.

Applying the Enhanced for
Since the for-each styleforcan only cycle through an array sequentially, from start to finish,
you might think that its use is limited, but this is not true. A large number of algorithms
require exactly this mechanism. One of the most common is searching. For example, the
following program uses aforloop to search an unsorted array for a value. It stops if the
value is found.

96 Part I: The Java Language

Free download pdf