我正在尝试执行我的Java代码,但是它说花费的时间太长。有一种方法弹出说要检查我是否有无限循环。我不。至少我不这么认为。我是Java的新手,所以我真的需要帮助。我的作业需要一个for循环,这是我想出的代码
import java.lang.Math;
public class Main{
double initialBalance;
double interestRate;
double years;
double totalPayment;
double firstInterest;
double lastInterest;
double totalInterest;
double totalPrincipal;
double firstPrincipal;
double lastPrincipal;
double firstBalance;
double lastBalance;
double monthlyPayment;
public static final double periodsPerYear = 12;
public static final double invalidNum = -1.0;
public Main(double balance, double interest, double Life){
initialBalance = balance;
interestRate = interest;
years = Life;
//monthlyPayment calculation
monthlyPayment = initialBalance * ((interestRate/periodsPerYear)+((interestRate/periodsPerYear)/(Math.pow(1+(interestRate/periodsPerYear),periodsPerYear*years)-1)));
for (double i=0;i?" ) );
System.out.println( loan.getAmount( "{)*(&EPQWR", "interest") );
}
}
我该怎么做才能使其执行更快?我究竟做错了什么?
首先,您提供的代码无法编译。未声明getAmount()中的变量“ valid”和“ lastBalance0”。可能您忘记了在此方法的顶部声明“双重有效”,并键入了“ lastBalance0”而不是“ lastBalance”。
您的代码还存在其他一些问题:
在for循环中将变量'i'的类型更改为'int'
将return Math.round((valid * 100.00)/100.00)更改为返回Math.round(valid * 100.00)/100.00
考虑使用“ first” .equals(month)代替month.equals(“ first”),因为如果month为空,它不会引发NullPointerException。
正如Alex所指出的,您的代码无法编译。
修复了这两件事之后,它确实运行了:
代码已运行,这是输出:
Mon Feb 24 09:34:37 CET 2020
1582533277204
4387.13897340686
5291.335361764231
105291.33536176465
417.0
3970.0
96030.0
-1.0
18.0
4369.0
0.0
-1.0
-1.0
Mon Feb 24 09:34:37 CET 2020
1582533277206
我在开始和结束时添加了以毫秒为单位的当前日期和时间的打印,并且该程序需要2毫秒的时间来执行。
希望朋友们都对“Java运行缓慢的解决方案”了解清楚了,如果你想深入认识Java编程方面的内容,欢迎来我们本站技术频道网站翻阅相关文章。
C代码转换成Java代码的过程:下一篇