我编写了一个代码来计算每月抵押付款。这是我的代码的一部分->
public static void printAmortizationSchedule(double principal, double annualInterestRate,
int numYears) {
double interestPaid, principalPaid, newBalance;
double monthlyInterestRate, monthlyPayment;
int month;
int numMonths = numYears * 12;
monthlyInterestRate = annualInterestRate / 12;
monthlyPayment = monthlyPayment(principal, monthlyInterestRate, numYears);
System.out.format("Your monthly Payment is: %8.2f%n", monthlyPayment);
for (month = 1; month <= numMonths; month++) {
// Compute amount paid and new balance for each payment period
interestPaid = principal * (monthlyInterestRate / 100);
principalPaid = monthlyPayment - interestPaid;
newBalance = principal - principalPaid;
// Update the balance
principal = newBalance;
}
}
static double monthlyPayment(double loanAmount, double monthlyInterestRate, int numberOfYears) {
monthlyInterestRate /= 100;
return loanAmount * monthlyInterestRate /
( 1 - 1 / Math.pow(1 + monthlyInterestRate, numberOfYears * 12) );
}
现在,我需要添加代码 1.本金必须为非负数。
•1年3.5% •2年3.9% •3年4.4% •5年5.0% •10年6.0%
我认为我需要使用do while语句或其他代码。但是,我很难找到放置位置。请帮帮我!
答案 0 :(得分:1)
在两种情况下,您都需要处理一个条件:
因此,您将使用if-then-else构造。
对于本金,请尽早检查;仅将计算全部丢弃是没有意义的,因为它们是无效的。您可以抛出异常以指示无效输入,即负主体。
对于费率,您只需要确保在使用它之前选择正确的费率(使用if-then-else)即可。