0
我正在尝试为债务做一个滚雪球计算 - 对于那些不知道的人 - 您每个月都会对所有贷款进行最低支付。一旦有人获得了回报,您将获得最低的付款并将其添加到下一个 - 等等。我有我的每个债务金额在做while循环,但我的屏幕变黑,我相信它是在一个无限循环。我有10个总这些,但这里有一些只是为了展示它是如何工作的:虽然在满足标准时循环不停止
int tempTimeTaken=0;
double newPmt = payment1 + aAmt;
while(amount1>0){
amount1 = (amount1 * rate1) - newPmt;
tempTimeTaken++;
}
newPmt = newPmt + payment2;
for (int i=0;i<tempTimeTaken;i++)
{
if(amount2>0){
amount2 = (amount2 * rate2) - payment2;
}
}
do{
if (amount2>0){
amount2 = (amount2 * rate2) - newPmt;
tempTimeTaken++;}
}while(amount2>0);
这里每一个未初始化的变量,从早期的活动sharedpreference进行检索。一旦收到,它被解析为一个double(假设它不是null)。
try
{
amount2 = Double.parseDouble(debtAmount2);
}
catch (Exception e)
{
amount2 = 0;
}
我也试过环为
while (amount>0){
//do stuff
}
,但这并没有工作,要么 - 同样的效果。
有关如何让它不会永久循环的任何建议?
所有数据类型是双(除了tempTimeTaken为int) - 初始值变化 - 它们是在不同的活动的输入和经由sharedpref具有0
添加数据类型和速率1 amount1 AMOUNT2等初始值,使程序完整,因此会更容易调试 –
看到更新的类型 – jpgerb
上面这个作品,如果'rate'和'newPmt'有合理的值。你能提供你使用的确切值吗?此外,您可以尝试记录循环执行步骤,然后使用'logcat'来检查它们。至少你可以确认它无限循环。 –