(Java初学者) - 遇到程序问题

时间:2014-10-27 13:24:27

标签: java

好的,我正在制定一个涉及贷款的计划,并向用户提供有关用户输入的贷款的信息。

我写这个程序的目的是要求用户输入贷款金额和他们必须支付的年数。一旦用户提供了此信息,该程序将获取贷款金额和年数,并告知用户年利率,每月付款和总金额。 此外,如果用户输入的贷款金额为-1,则该程序应该终止。

以下是我的代码:

package Loans;

import java.util.Scanner;

public class Loans {

    public static void main(String[] args) {

        Scanner input = new Scanner (System.in);

        double monthlyInterestRate;
        double annualInterestRate;
        double monthlyPayment;
        double total;
        double numberOfYears;
        double loanAmount;

        System.out.println("This program will compute the monthly payments and total payments for a loan amount on interest rates starting at 5%, incrementing by 1/8th percent up to 8%.");

        //Formula to Calculate Monthly Interest Rate:
        monthlyInterestRate = (annualInterestRate/1200);

        //Formula to Calculate Monthly Payment:
        monthlyPayment = (loanAmount*monthlyInterestRate);

        //Formula To Calculate Annual Interest Rate:
        annualInterestRate = (1-(Math.pow(1/(1 + monthlyInterestRate), numberOfYears * 12)));

        //Formula To Calculate The Total Payment:
        total = (monthlyPayment*numberOfYears*12);

        while(true)
        {


            System.out.println("Please enter in the loan amount.");
            double loanAmount = input.nextDouble();
            System.out.println("Please enter in the number of years.");
            double numberOfYears = input.nextDouble();

            System.out.println("Interest Rate: " + annualInterestRate);
            System.out.println("Monthly Payment: " + monthlyPayment);
            System.out.println("Total Payment: " + total);

            }
    }
}

这不编译,我不知道为什么。 (再次,我是初学者)

我收到的错误在“double loanAmount = input.nextDouble();”行上。 AND读取“double numberOfYears = input.nextDouble();”的行。

第一行的错误是“Duplicate local variable loanAmount”。

第二行的错误表示“此行的多个标记      - 线路断点:贷款[线路:39] -      主要(字符串[])      - 重复的局部变量numberOfYears“

感谢任何反馈。

2 个答案:

答案 0 :(得分:0)

你得到的错误几乎是自我解释的。你已经定义了" loanAmount"和" numberOfYears"主要两次。重命名它们或只声明它们一次。

如果您是编码的初学者,我建议您使用Eclipse或Netbeans等IDE。他们会指出编译错误以及如何修复它们的建议。

答案 1 :(得分:0)

很容易修复。所以问题在于这一部分:

        System.out.println("Please enter in the loan amount.");
        double loanAmount = input.nextDouble();
        System.out.println("Please enter in the number of years.");
        double numberOfYears = input.nextDouble();

您正在重新定义双变量loanAmount和numberOfYears,这将导致错误。在使用它们的两条线上取出“双”。

您需要做的另一项更改是在代码顶部初始化这些变量。更改初始化所有双变量的行,并将它们设置为0,例如:

    double annualInterestRate = 0;
    double numberOfYears = 0;
    double loanAmount = 0;

当变量在程序中有调用时,必须先对其进行初始化。它初始化的内容并不重要,因为它的最终值将由程序的动作决定,但绝对需要在某个时刻进行初始化。

我做了这些修改,程序编译成功。

希望这有帮助!