This question has already been solved
You
Is there an easy way for me to combine these two programs? What I am wanting to use an array for the different loans. Display the mortgage payment amount for each loan and then list the loan balance and interest paid for each payment over the term of the loan. Use loops to prevent lists from scrolling off the screen. Here are the two programs I have so far. Any guidance is appreciated.
*/
import java.io.*; // java input output package
import java.text.DecimalFormat; // allows placement of decimal
public class MonthlyPayments4e extends Thread //class header with "Thread" for sleep
{
public static void main(String[] args)
{
double Loan, NewBal, MIP;
double Rate, MonthlyInterest, Payments; //double precision variables
//assign values to variables
Loan= 200000; // loan amount
Rate = .0575; //interest rate
MonthlyInterest = Rate / 12; // interest for each month
Payments = Loan * (MonthlyInterest / (1 - Math.pow(1+MonthlyInterest, -360))); //my formula
DecimalFormat twoDigits = new DecimalFormat("$,000.00"); // declares decimal format
MIP= (Loan * Rate) / 12;
NewBal = Loan -(Payments-MIP);
System.out.println("Monthly Payments Interest Paid This Payment Loan Balance");
System.out.println();//my printout provides extra line
System.out.print(" " + twoDigits.format(Payments)); //my printout
System.out.print("\t\t\t" + twoDigits.format(MIP));//my printout
System.out.println("\t\t\t" + twoDigits.format(NewBal));//my printout
System.out.print(" " + twoDigits.format(Payments)); //my printout
MIP=(NewBal*Rate)/12;
System.out.print("\t\t\t" + twoDigits.format(MIP));//my printout
NewBal=NewBal -(Payments-MIP);
System.out.println("\t\t\t" + twoDigits.format(NewBal));//my printout
System.out.print(" " + twoDigits.format(Payments)); //my printout
while (NewBal > 1) //while loop to make computations continue until gets to $200000
{
MIP=(NewBal*Rate)/12;
System.out.print("\t\t\t" + twoDigits.format(MIP));//my printout
NewBal=NewBal -(Payments-MIP);
System.out.println("\t\t\t" + twoDigits.format(NewBal));//my printout
System.out.print(" " + twoDigits.format(Payments)); //my printout
if (NewBal <100000) // tells when this is met to transition to sleep phase
try
{
Thread.sleep (500); //sleep phase needed per change request also states pause is 500 milliseconds
}
catch (InterruptedException e)
{
}
}
}
} */
import java.io.*; // java input output package
import java.text.DecimalFormat;
public class MonthlyPayments5 //class header
{
public static void main(String[] args) //don't know if this is needed or not but here it is
{
double Loan;
double Rate1,Rate2,Rate3, MonthlyInterest1,MonthlyInterest2,MonthlyInterest3,Payment1,Payment2,Payment3; //double precision variables
//assign values to variables
Loan= 200000; // loan amount
Rate1 = 5.75;
Rate2 = 5.5;
Rate3 = 5.35;
MonthlyInterest1 = (Rate1 / 100) / 12;
MonthlyInterest2 = (Rate2 / 100) / 12;
MonthlyInterest3 = (Rate3 / 100) / 12;
Payment1 = Loan * (MonthlyInterest1 / (1 - Math.pow(1+MonthlyInterest1, -360))); //my formula
Payment2 = Loan * (MonthlyInterest2 / (1 - Math.pow(1+MonthlyInterest2, -180))); //my formula
Payment3 = Loan * (MonthlyInterest3 / (1 - Math.pow(1+MonthlyInterest3, -84))); //my formula
DecimalFormat twoDigits = new DecimalFormat("000.00");
System.out.println("\tYour Monthly Payments for 30 years are:\t $" + twoDigits.format(Payment1)); //my printout
System.out.println("\tYour Monthly Payments for 15 years are:\t $" + twoDigits.format(Payment2)); //my printout
System.out.println("\tYour Monthly Payments for 7 years are:\t $" + twoDigits.format(Payment3)); //my printout
}
}Here is my updated code:
import java.io.*; // java input output package
import java.text.DecimalFormat; // java package for the decimal
class PaymentArray3 extends Thread //class name
{
public static void main(String[] arguments)
{
double Loan=200000;
double NewBal;
double amount = 200000; // loan amount with double for
int[]term = {7, 15, 30}; //length of the loans with array string
double[] rate = {.0535, .055, .0575}; //interest rate in decimal format of the loans with array string
DecimalFormat twoDigits = new DecimalFormat("$000.00"); // tells what format the dedimal must follow
System.out.println("\t\tWith a loan amount of " +twoDigits.format(amount)); // First line of print out
for (int i = 0; i < term.length; i++) //initializing the array
{
{
System.out.print("for " + term[i] + " years"); // prints out the number of years each loan is for
System.out.print("\tat a rate of " + rate[i]); // prints out the rates of each loans
double payment = (amount*(rate[i]/12))/(1-(Math.pow(1/(1+(rate[i]/12)),(term[i]*12)))); // formula for loans with array pointers
System.out.println("\tThe monthly payment will be " + twoDigits.format(payment)); // printout of actual monthly payments
NewBal = amount -(payment-rate[i]);
while (NewBal > 1) //while loop to make computations continue until gets to $200000
NewBal = amount -(payment-rate[i]);
rate[i]=(NewBal)(term)/12;
System.out.print("\t\t\t" + twoDigits.format(rate[i]));//my printout
NewBal=NewBal -(payment-rate[i]);
System.out.println("\t\t\t" + twoDigits.format(NewBal));//my printout
System.out.print(" " + twoDigits.format(payment)); //my printout
if (NewBal <100000) // tells when this is met to transition to sleep phase
try
{
Thread.sleep (500); //sleep phase needed per change request also states pause is 500 milliseconds
}
catch (InterruptedException e)
{
}
}
}
}
}