Das Programm "probiert" verschiedene Zinssätze aus, beginnend mit 0 Prozent. Für jeden Zinssatz muss der Dollarbetrag auf den Betrag des ersten Jahres zurückgesetzt werden.
Die Art wie die Variable zinssatz initialisiert und dann sofort
inkrementiert wird ist unbeholfen.
Hier ist ein Programm, das diese Variable auf eine andere Art initialisiert, aber dafür möglicherweise einen Bug enthält:
class MillionDollarBuggy
{
public static void main( String[] args )
{
double anfangsbetrag = 1000.0 ;
double dollars = 0.0;
double zinssatz ;
int jahre ;
zinssatz = 0.0 ; // Zinssatz mit 0 beginnen
while ( dollars < 1000000 )
{
// Dollars nach 40 Jahren beim gegenwärtigen Zinssatz berechnen
jahre = 1 ;
dollars = anfangsbetrag ;
while ( jahre <= 40 )
{
dollars = dollars + dollars*zinssatz ; // Zinsen für ein weiteres
// Jahr addieren
dollars = dollars + 1000 ; // fügen Sie die jährliche
// Einzahlung hinzu
jahre = jahre + 1 ;
}
// zum nächsten Zinssatz wechseln
zinssatz = zinssatz + 0.001 ;
}
System.out.println("Nach 40 Jahren bei " + zinssatz*100
+ "Prozent Zinsen werden Sie" + dollars + " Dollar haben." ) ;
}
}
Gibt es in diesem Programm einen Bug?