2014-10-27 57 views
-6

好了,所以我對涉及貸款和信息提供給有關從什麼用戶輸入貸款用戶的程序工作。(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); 

      } 
    } 
} 

這並不編譯,我不知道爲什麼。 (同樣,我是初學者)

我收到的錯誤是在讀取的行「雙loanAmount = input.nextDouble();」和讀取「double numberOfYears = input.nextDouble();」的行。

的第一行中的錯誤說「重複局部變量loanAmount」。

第二行中的錯誤說, 「多個標記在該行 - 行斷點:貸款[行:39] - 主(字符串[]) - 重複局部變量numberOfYears」

任何反饋非常感謝。

+3

請不要將我們鏈接到奇怪的地方。 – Maroun 2014-10-27 13:26:22

+1

你的代碼本來可以很容易地包含在這個問題中 – JonK 2014-10-27 13:28:19

+0

[我如何問及回答作業問題?](http://meta.stackexchange。com/q/10811) – Braiam 2014-10-27 13:28:59

回答

0

你得到的錯誤幾乎是自我解釋。你已經在主要中定義了兩次「loanAmount」和「numberOfYears」。重命名它們或僅聲明它們一次。

如果您在編碼是一個初學者,我會建議你使用像Eclipse或Netbeans的一個IDE。他們會指出編譯錯誤以及如何解決這些錯誤的建議。

+0

謝謝!是的,我實際上一直想要使用Eclipse是因爲這個確切原因......但是在我的課堂上,我的教授強迫我們使用Dr. Java(僅僅因爲它是SHE喜歡的)。無論如何,我可能會用它。謝謝。 – 2014-10-31 15:49:56

+0

Java博士:)從來沒有聽說過它! – Chiseled 2014-10-31 15:57:32

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,這是會導致錯誤。在他們使用的兩條線上取出「雙」。

你需要做的另一個變化是在你的代碼的頂部並初始化這些變量。更改,你初始化所有的double變量的行並將它們設置爲0,例如:

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

當一個變量在一個程序的調用,它必須首先進行初始化。它初始化的內容並不重要,因爲它的最終值將由程序的動作決定,但絕對需要在某個時候初始化。

我做了這些改變,程序編譯成功。

希望這會有所幫助!

+0

謝謝! :)這是有道理的,我現在完全理解這個程序後,一些與我的教授交談。這也有助於增加它的意義。 感謝您的迴應! – 2014-10-31 15:47:58