Control Statements
Loops
nested for
Nested for loops that print a table of future values
// get the currency and percent formatters
NumberFormat currency = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();
percent.setMinimumFractionDigits(1);
// set the monthly payment to 100 and display it to the user
double monthlyPayment = 100.0;
System.out.println("Monthly Payment: " + monthlyPayment);
System.out.println();
// declare a variable to store the table
String table = " ";
// fill the first row of the table
for (double rate = 5.0; rate < 7.0; rate += .5)
{
table += percent.format(rate/100) + " ";
}
table += "\n";
// loop through each row
for (int years = 4; years > 1; years--)
{
// append the years variable to the start of the row
String row = years + " ";
// loop through each column
for (double rate = 5.0; rate < 7.0; rate += .5)
{
// calculate the future value for each rate
int months = years * 12;
double monthlyInterestRate = rate/12/100;
double futureValue = 0.0;
for (int i = 1; i <= months; i++)
{
futureValue =
(futureValue + monthlyPayment) *
(1 + monthlyInterestRate);
}
// add the calculation to the row
row += currency.format(futureValue) + " ";
}
table += row + "\n";
row = "";
}
// display the table to the user
System.out.println(table);