go to previous page   go to home page   go to next page
-45,  -23,  -87,  -56,  -92,  -12,  -36



Breaking the Program

Debugging a program is often difficult. Finding test cases that thouroughly test a program is an important part of this.

Here is our program, again:

class MaxAlgorithm
  public static void main ( String[] args ) 
    int[] array =  { -20, 19, 1, 5, -1, 27, 19, 5 } ;
    int   max;

    // initialize the current maximum
    max = array[0];

    // scan the array
    for ( int index=0; index < array.length; index++ )
      if ( array[ index ] > max )    // examine the current element
        max = array[ index ];        // if it is the largest so far, change max
    System.out.println("The maximum of this array is: " + max );

Compile and run the program. Once you have it running see if you can "break" it by initializing the array to different values:

Is the correct maximum found in each case? Sometimes a program works for the data a programmer was thinking about when the program was written, but not for all the kinds of data the program is used with.


Here is an interesting situation: change the test part of the for to

index < array.length-1
  1. Will the program (with the changed loop) find the correct maximum of the data that is given in the initializer list?
  2. When will the program not work correctly?
  3. Is it obvious that there is a bug?