我只是作为初学者练习Java。所以这是一个问题: 假设您每月将100美元存入储蓄账户,年利率为5%。因此,每月利率为0.00417。在第一个月之后,帐户中的值变为100 *(1 + 0.00417)= 100.417,第二个月将是(100 + firstMonthValue)* 1.00417,然后每个月都这样继续。所以这是我的代码:
import javax.swing.JOptionPane;
public class vinalcialApplication {
public static void main(String args[]){
String monthlySaving = JOptionPane.showInputDialog("Enter the monthly savings");
double monthsaving = Double.parseDouble(monthlySaving);
//define monthly rate
double monthlyrate = 1.00417;
double totalrate = monthlyrate + 0.00417;
double firstMonthValue = monthsaving * (totalrate);
double secondMonthValue = (firstMonthValue + 100)*(monthlyrate);
double thridMonthValue = (secondMonthValue + 100) * (monthlyrate);
.........
System.out.print("After the sixth month, the account value is " sixthMonthValue);
}
}
我的意思是代码可以工作,但是编写的代码太多了。我确信我可以使用循环或if语句来执行此操作,但还没有找到办法来做到这一点..你能帮忙吗? 谢谢。
答案 0 :(得分:4)
如果我理解正确,这称为复利。
有一个数学公式可以实现你想要的而不需要循环。
以下是维基百科的公式
其中, A =未来价值,P =本金额(初始投资),r =年名义利率,利率,n =每年利息复利的次数,t =年数
希望这可以帮助您解决您想要的问题。我可以给你示例代码,但我认为将此公式转换为java语句相当容易。如果您需要更多信息,请告诉我们。
答案 1 :(得分:0)
数学可能是错误的,但基本概念是合理的。
public static void main(String[] args) {
double monthsaving = 100;
double monthlyrate = 1.00417;
double savings = 0;
// Loop for six months...
for (int index = 0; index < 6; index++) {
savings += monthsaving * monthlyrate;
System.out.println(index + ":" + savings);
}
System.out.println(savings);
}
仔细查看Control Flow Statements,附上while
,do-while
和for
语句
答案 2 :(得分:0)
import javax.swing.JOptionPane;
public class vinalcialApplication {
public static void main(String args[]){
String monthlySaving = JOptionPane.showInputDialog("Enter the monthly savings");
double monthsaving = Double.parseDouble(monthlySaving);
//define monthly rate
double monthlyrate = 1.00417;
double totalrate = monthlyrate + 0.00417;
double value = monthsaving * (totalrate);
for(int i = 1; i<6;i++) {
value = (value + 100)*(monthlyrate);
}
System.out.print("After the sixth month, the account value is " value);
}