Return when Found

Classic programmed-learning exercises, refreshed for modern Java and presented in the current MrStyner.com portfolio style.

Modern Java noteThis archive has been refreshed for Java 25 LTS. Core language concepts remain useful, while outdated setup instructions and browser-era Java are labeled or replaced. Java 26 is the current feature release; Java 25 is used here as the stable teaching baseline.
go to previous page   go to home page   go to next page

Answer:

  • array[ j ] = target
    • NO! a horrible bug! This copies the reference contained in target into cell j of the array
  • array[ j ] == target
    • NO! a less horrible bug! This tests if the two references are identical (it test there is one object that they both refer to.)
  • array[ j ].equals( target )
    • Yes! This checks if the two String objects contain the same characters.

Return when Found

Unless you enjoy late nights debugging programs that have no hope of ever running, look over those three answers. Two of them (the wrong ones) are very common bugs. They will happen to you. Learn to recognize them.

The program below has more of the search method. Inspect the second if statement. It is written so that if the target has just been found the method immediately returns to the caller with the index of the cell in which target was found.

class Searcher
{
  // seek target in the array of strings.
  // return the index where found, or -1 if not found.
  public static int search( String[] array, String target )
  {
     for ( int j=0; j  < array.length; j++ )
       if ( array[j] != null )
         if ( array[j].equals( target ) ) return  ;

     return  ; // Outside of the Loop!
  }
}

class SearchTester
{
  public static void main ( String[] args )
  {
    . . . . . .
    int where = Searcher.search( strArray, "Peoria" );
    . . . . . .
  }
}

The second return statement is NOT part of the loop body. It is executed only when every cell of the array has been inspected and the target has not been found.

QUESTION 19:

You know what to do with those blanks.