我有一个项目,我必须编写一个程序,提示用户初始投资金额和目标投资金额,并计算从固定利率(从初始金额增长到目标金额需要多少年)(即:5%).(使用WHILE循环).打印出每年的结果.例如,如果您选择在5年内投资1,000美元:第1年1005年第2期1011等:
我能够编译java程序,但我只能提示用户进行初始投资和目标投资,利息为5%.输出不正确.我做错了什么?这是我的代码.
import static java.lang.System.out;
import java.util.Scanner;
import java.io.*;
public class Investment_Calculator {//main
public static void main(String[] args) {//begins body
double principal = 1;//initial amount investing
double interest = 1;
double rate = 0.05;//the fixed interest amount
int years = 1;//amout of years it will take to achieve goal
double goal = 1;
double total = 1;
Scanner myScanner = new Scanner(System.in);
System.out.println("*************************************** ");
System.out.println("* Welcome to the Investment Calculator * ");
System.out.println("*************************************** ");
System.out.println ("Enter your initial investment amount: if you want to exit enter 0.");
int inputNumber = myScanner.nextInt();
principal = inputNumber;
if (inputNumber == 0){//if num = 0 exit class
System.exit(0);
}
System.out.println ("Enter your goal investment amount: ");
int inputNumber2 = myScanner.nextInt ();
goal = inputNumber2;
System.out.println ("The fixed interest rate is 5%");
total= principal; // start with our initial amount of money
for (; total < goal; total= (1+interest)*total);
{ System.out.print("The number of years you must invest to meet your goal of $ ");
System.out.print(goal);
System.out.print(" is");
System.out.println(years);
System.out.println(" years");
}
}
}
Run Code Online (Sandbox Code Playgroud)
for (; total < goal; total= (1+interest)*total);
Run Code Online (Sandbox Code Playgroud)
在这个循环结束时你有一个分号.去掉它.
因此,print
for循环之后的下一组语句变为unnamed block
: -
{
System.out.print("The number of years you must invest to meet your goal of $ ");
System.out.print(goal);
System.out.print(" is");
System.out.println(years);
System.out.println(" years");
years++; <-- // Increment `years` here.
}
Run Code Online (Sandbox Code Playgroud)
这些只会执行一次.
更新: -
您可以使用以下代码获取每年的totalInterest和最终输出
int years = 1;
while (principal <= goal) {
double totalInterest = principal * rate * years / 100.0;
principal = principal + totalInterest;
System.out.println("Interest amount for year: " + years +
" = " + totalInterest);
years++;
}
System.out.print("The number of years you must invest to meet your goal of $ ");
System.out.print(goal);
System.out.print(" is");
System.out.println(years);
System.out.println(" years");
Run Code Online (Sandbox Code Playgroud)