<< 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.

Back to Question 5

Answer 4

C. 1 1 1 1 1 1 2 3 4 51 3 5 7 9

Explanation 4

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask