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'來檢查它們。至少你可以確認它無限循環。 –