Java Reference
In-Depth Information
9.2
Programs that use rectangular arrays
9.2.1
Printing a two-dimensional array
We develop a procedure to print the elements of a two-dimensional array, one
row per line. Here is its specification:
See lesson 9-23
to get the pro-
cedure to print
the array.
/** Print array d, one row per line. Precede each row by the integer
* 1 + (the row number) */
public static void printTable( int [][] d)
It makes sense to use a loop schema that processes the rows of array d , one
row at a time. So, here is a first refinement of its procedure body:
// invariant: rows 0 , ..., r-1 have been printed
for ( int r= 0; r != d.length; r= r + 1) {
Print row d[r] on one line (with its preceding integer r+1 )
}
We refine the repetend. We need a statement to print the integer r+1 , a loop
to print the elements of the row, and a statement to write a new-line character.
Again, we use a loop schema that processes an array —this time, array d[r] :
// Print row d[r] on one line (with its preceding integer r+1 )
System.out.print((1 + r) + " ");
// invariant: elements d[r][0..c-1] have been printed
for ( int c= 0; c != d[r].length; c= c + 1) {
Print d[r][c]
}
System.out.println();
Look at the argument of the statement that prints the integer r+1 . Because
the expression occurs in a place where a String value is expected, the value of
r+1 is converted to a String . Then, a String literal consisting of two blanks
/** Print array d, one row per line. Precede each row by the integer 1+( row number ) */
public static void printTable( int [][] d) {
// invariant: rows 0, …, r-1 have been printed
for ( int r= 0; r != d.length; r= r + 1) {
// Print row d[r] on one line, preceded by r+1
System.out.print((1 + r) + " ");
// invariant: d[r][0..c-1] has been printed
for ( int c= 0; c != d[r].length; c= c + 1)
{ System.out.print( " " + d[r][c]); }
System.out.println();
}
}
Figure 9.2:
A procedure to print a two-dimensional array
Search WWH ::

Custom Search