2014-10-01 2 views
-3

Мне нужно создать программу на Java, которая использует метод вычисления будущей стоимости инвестиций с пользователем, вносящим сумму инвестиций и процентную ставку. Он должен отображаться в таблице и иметь годы 1-30.Ошибка: futureInvestmentValue не может быть разрешен переменной

У меня ОДНА ошибка, что я не могу понять, как исправить. Ошибка находится под //Title в main, где у меня есть futureInvestmentValue. Ошибка говорит мне, что

futureInvestmentValue cannot be resolved to a variable

Вот мой код:

import java.util.Scanner; 
public class futureInvestmentValue {  
    public static double futureInvestmentValue(double investmentAmount, 
     double monthlyInterestRate, int years){ 
     double futureInvestmentValue = 1; 

     for (years = 1; years <= 30; years++) { 
      monthlyInterestRate = years/1200; 
      futureInvestmentValue = 
       investmentAmount * Math.pow((1+monthlyInterestRate), years*12); 
     } 
     return futureInvestmentValue; 
    }   

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     //Get investment amount and yearly interest rate from user 
     Scanner input = new Scanner (System.in); 
     System.out.print("Enter investment amount, for example 100:" + 
      "Enter yearly interest rate, for example 5.25:\n"); 
     double investmentAmount = input.nextDouble(); 
     double annualInterestRate = input.nextDouble(); 

     //Title 
     System.out.print("Years\t" + "\t Future Value"); 

     for (int years = 1; years <= 30; years++) { 
      System.out.print(years); 
      System.out.printf("%4d", futureInvestmentValue); 

     } 
     System.out.println();    
    }  
} 
+1

Вы объявляете эту переменную внутри 'futureInvestmentValue()', поэтому вы можете получить доступ к ней только в этом методе. Если вам нужен доступ в 'main()', вам нужно объявить его как переменную класса, статическую. Другой вариант - вызвать этот метод в вашем заявлении печати, используя '()' в конце. – csmckelvey

+0

Да, потому что это не переменная, но вы используете ее как таковую. – njzk2

ответ

5

В вашей основной метод, вы ссылаетесь на переменную вместо имени функции ...

System.out.printf("%4d", futureInvestmentValue); 

Вышеуказанное должно быть:

Это то, что вы получаете, кстати, для предоставления переменных и функций с тем же именем. Не делай этого.

+1

Это то, что происходит, когда Visual Basic является первым языком программирования, который вы изучаете. –

Смежные вопросы