CIS 35A: Introduction to Java Programming

Home | Green Sheet | Lectures | Assignments | FAQ

Control

Control Statements
Static methods
Application

The Future Value application with a static method


import java.util.Scanner;
import java.text.NumberFormat;

public class FutureValueApp
{
   public static void main(String[] args)
   {
      Scanner sc = new Scanner(System.in);
      String choice = "y";
      while (!choice.equalsIgnoreCase("n"))
      {
         // get the input from the user
         System.out.print("Enter monthly investment:   ");
         double monthlyInvestment = sc.nextDouble();
         System.out.print("Enter yearly interest rate: ");
         double interestRate = sc.nextDouble();
         System.out.print("Enter number of years:      ");
         int years = sc.nextInt();

         // convert yearly values to monthly values
         double monthlyInterestRate = interestRate/12/100;
         int months = years * 12;

         // call the future value method
         double futureValue = calculateFutureValue(
            monthlyInvestment, monthlyInterestRate, months);

         // format and display the result
         NumberFormat currency =
            NumberFormat.getCurrencyInstance();
         System.out.println("Future value:               " + currency.format(futureValue));
         System.out.println();

         // see if the user wants to continue
         System.out.print("Continue? (y/n): ");
         choice = sc.next();
         System.out.println();
      }
   }
   // a static method that requires three arguments
   // and returns a double
   private static double calculateFutureValue(
   double monthlyInvestment, double monthlyInterestRate,
   int months)
   {
      double futureValue = 0.0;
      for (int i = 1; i <= months; i++)
      {
         futureValue =
            (futureValue + monthlyInvestment) *
            (1 + monthlyInterestRate);
      }
      return futureValue;
   }
}
Previous | Static methods | Code | Call | Application