58 lines
1.5 KiB
Java
58 lines
1.5 KiB
Java
/**
|
|
* This program shows how to store tabular data in a 2D array.
|
|
* @version 1.40 2004-02-10
|
|
* @author Cay Horstmann
|
|
*/
|
|
public class CompoundInterest
|
|
{
|
|
public static void main(String[] args)
|
|
{
|
|
final double STARTRATE = 10;
|
|
final int NRATES = 6;
|
|
final int NYEARS = 10;
|
|
|
|
// set interest rates to 10 . . . 15%
|
|
double[] interestRate = new double[NRATES];
|
|
for (int j = 0; j < interestRate.length; j++)
|
|
interestRate[j] = (STARTRATE + j) / 100.0;
|
|
|
|
double[][] balances = new double[NYEARS][NRATES];
|
|
|
|
// set initial balances to 10000
|
|
for (int j = 0; j < balances[0].length; j++)
|
|
balances[0][j] = 10000;
|
|
|
|
// compute interest for future years
|
|
for (int i = 1; i < balances.length; i++)
|
|
{
|
|
for (int j = 0; j < balances[i].length; j++)
|
|
{
|
|
// get last year's balances from previous row
|
|
double oldBalance = balances[i - 1][j];
|
|
|
|
// compute interest
|
|
double interest = oldBalance * interestRate[j];
|
|
|
|
// compute this year's balances
|
|
balances[i][j] = oldBalance + interest;
|
|
}
|
|
}
|
|
|
|
// print one row of interest rates
|
|
for (int j = 0; j < interestRate.length; j++)
|
|
System.out.printf("%9.0f%%", 100 * interestRate[j]);
|
|
|
|
System.out.println();
|
|
|
|
// print balance table
|
|
for (double[] row : balances)
|
|
{
|
|
// print table row
|
|
for (double b : row)
|
|
System.out.printf("%10.2f", b);
|
|
|
|
System.out.println();
|
|
}
|
|
}
|
|
}
|