<< Chapter < Page | Chapter >> Page > |
Abnormal termination
While experiencing abnormal program termination isn't all that great, it is better than the alternative of using arrays whose boundaries aren't protected.Programming languages that don't protect the array boundaries simply overwrite other data in memory whenever the array boundaries are exceeded.
Attempt to access out of bounds element
The code in the for loop in the following fragment attempts to access the array element at the index value 5. That index value is out ofbounds of the array.
for(int j = 0;j<6;j++){
System.out.print(myArray[i][j]+ " ");
}//end inner for loop
Because that index value is outside the boundaries of the array, an ArrayIndexOutOfBoundsException is thrown. The exception isn't caught and handled by program code, so the program terminates abnormally at runtime.
This program also illustrates that it is usually better to use the length property of an array to control iterative loops than to use hard-coded limitvalues, which may be coded erroneously.
C. 1 1 1 1 1
1 2 3 4 51 3 5 7 9
A two-dimensional array
This program illustrates how to create, populate, and process a two-dimensional array with three rows and five columns.
(As mentioned earlier, a Java programmer who understands the fine points of the language probably wouldn't call this a two-dimensional array. Rather,this is a one-dimensional array containing three elements. Each of those elements is a reference to a one-dimensional array containing five elements.That is the more general way to think of Java arrays.)
The following code fragment creates the array, using one of the acceptable formats discussed in Question 3 .
int myArray[][];
myArray = new int[3][5];
Populating the array
The next code fragment uses a pair of nested for loops to populate the elements in the array with values of type int .
for(int i=0;i<myArray.length;i++){
for(int j=0;j<myArray[0].length;j++){myArray[i][j]= i*j + 1;
}//end innerfor loop
}//end outer for loop
This is where the analogy of a two-dimensional array falls apart. It is much easier at thispoint to think in terms of a three-element primary array, each of whose elements contains a reference to a secondary array containing five elements. (Note that in Java, the secondary arrays don't all have to be of the same size. Hence, itis possible to create odd-shaped multi-dimensional arrays in Java.)
Using the length property
Pay special attention to the two chunks of code that use the length properties of the arrays to determine the number of iterations for each of the for loops.
The first chunk determines the number of elements in the primary array. In this case, the length property contains the value 3.
The second chunk determines the number of elements in the secondary array that is referred to by the contents of the element at index 0 in theprimary array. (Think carefully about what I just said.)
In this case, the length property of the secondary array contains the value 5.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?