Learn AP Comp Sci

Problem of the Day

Wednesday, May 14, 2025


Problem:

An Array of dogNames has been declared and initialized as follows:

String[] dogNames = {"Rover","Fido","Daisy","Spot","Sparky","Skippy","Bowser","Lola"};

Which of the following will correctly identify a random name from the Array?

  1. dogNames[(int) Math.random() * dogNames.length]
  2. dogNames[(int) (Math.random() * dogNames.length )]
  3. dogNames[(int) (Math.random() * dogNames.length - 1)]
  4. dogNames[(int) (Math.random() * dogNames.length + 1)]
  5. dogNames[(int) (Math.random() * (dogNames.length - 1))]

Show solution:

The correct answer is b. The Math.random() call gets a value from 0 - 0.999..., and multiplying it by the length of dogNames, 8, yields a value from 0 - 7.9999... Casting that as an int gives us an integer in the range 0 - 7 inclusive, which will correctly identify an in-bounds index from the Array.