java - Java投资代码

标签 java

我有一个项目,我必须编写一个程序,提示用户输入初始投资金额和目标投资金额,并计算以固定利率从初始金额增长到目标金额需要多少年率(即:5%)。 (使用 WHILE 循环)。打印出每年的结果。例如,如果您选择投资 1,000 美元 5 年: 第一年 1005 第二年 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");

} 
}

}

最佳答案

for (; total < goal; total= (1+interest)*total);

在这个循环的末尾有一个分号。将其删除。

正因为如此,您在 for 循环之后的下一组 print 语句变成了一个未命名 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.
} 

那些只会被执行一次。


更新:-

您可以使用以下代码获取每年的总利息和最终输出

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");

关于java - Java投资代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13101556/

相关文章:

自己的对象和 .equals 的 Java 集合

使用 Lambda 表达式进行 Java 排序

java - 为什么我的 Java JDBC 到 Firebird 数据库的连接不会断开?

java - 创建 bean 时出错

Java反编译->重新编译的过程,安全吗?

java - 导出到可运行的 JAR 后找不到资源文件

JavaFX 找不到图像

Java Play Framework 应用 PropertiesEnhancer 时出现 UnexpectedException

java - 字符串拆分并存储在 2 个不同的列表中

java - 列表没有重复项?