Seems to work, but seems a little askward.
The way the variable rate
is initialized and then immediately
incremented is awkward.
Here is a possibly buggy program that does this in a different way:
class MillionDollarBuggy { public static void main( String[] args ) { double initialAmount = 1000.00 ; double dollars = 0.0; double rate; int year; rate = 0.0; // Start interest rate at zero while ( dollars < 1000000 ) { // compute the dollars after 40 years at the current rate year = 1 ; dollars = initialAmount; while ( year <= 40 ) { dollars = dollars + dollars*rate ; // add another year's interest dollars = dollars + 1000 ; // add in this year's contribution year = year + 1 ; } // change to the next rate rate = rate + 0.001; } System.out.println("After 40 years at " + rate*100 + " percent interest you will have " + dollars + " dollars" ); } }
Is there a bug in this program?