所以我的for循环导致崩溃,我确切知道为什么,但我不确定是否有办法重写它以使其完成我想要完成的任务。
我试图让它每天从复利中取出资金并将其累计为一个月(设定为30天)。用户输入他们试图计算的天数。因此导致崩溃的原因是它们除了可被30整除的东西之外还有什么东西。
我很难想出一种方法来重写这个并且可以使用任何建议。我希望它做一些事情,如果他们输入65它计算2个月的价值,然后显示像第3个月的不足日。任何帮助总是非常感谢。提前谢谢。
for (int i = 0; i < numDays; i+=30){
double cash=0;
for (int n=1; n < 30; n++){
int currentDay;
currentDay= n+i;
cash=cash+dailyMoney[currentDay];
}
month++;
if(monthlyChecks == null)
monthlyChecks = "\nCheck on month "+month+": $"+df.format(cash)+"\n";
else
monthlyChecks = monthlyChecks+"\nCheck on month "+month+": $"+df.format(cash)+"\n";
}
numDays是用户输入的天数.... monthlyChecks是一个字符串.... dailyMoney []是保存每天金额的数组。
答案 0 :(得分:1)
好吧,听起来像你在试图用你的“第3个月的不足日期”做的是这样的:(假设numDays是一个int)
numMonths = numDays / 30 //If numDays is an int, this will round down.
extraDays = numDays % 30
for (int i = 0; i < numMonths; i+=30){
double cash=0;
for (int n=1; n < 30; n++){
int currentDay;
currentDay= n+i;
cash=cash+dailyMoney[currentDay];
}
month++;
if(monthlyChecks == null)
monthlyChecks = "\nCheck on month "+month+": $"+df.format(cash)+"\n";
else
monthlyChecks = monthlyChecks+"\nCheck on month "+month+": $"+df.format(cash)+"\n";
}
}
//Then at some point
Systme.out.println("Insuffiecent days for " + numMonth + 1 " months. " + 30 - extraDays " days short).")
答案 1 :(得分:1)
鉴于用户需要输入日期,可能是
int numMonths = numDays / 30;
int remainder = numDays % 30;
System.out.println ("Calculating for " + numMonths + " months");
if ( remainder != 0 ) {
numDays -= remainder;
System.err.println ("Insufficient days for month " + (numMonths + 1));
}
这应该全部放在代码的其余部分之前,包括(尤其)在dailyMoney = new double[numDays]
部分之前。