【问题标题】:while loop not stopping when criteria is met满足条件时,while循环不会停止
【发布时间】:2013-11-22 02:05:45
【问题描述】:

我正在尝试对债务进行滚雪球计算——对于那些不知道的人——你每个月都为所有贷款支付最低还款额。一旦还清了一笔,您就可以将最低还款额添加到下一笔中 - 依此类推。我的每笔债务都在循环中,但我的屏幕变黑了,我相信它处于无限循环中。我总共有 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);

此处未初始化的每个变量都是从活动早期的共享首选项中检索的。一旦收到,它就会被解析成一个双精度数(假设它不为空)。

    try
    {
        amount2 = Double.parseDouble(debtAmount2);
    }
    catch ( Exception e )
    {
        amount2 = 0;
    }

我也尝试过循环

while (amount>0){
//do stuff
}

这也不起作用 - 效果相同。

关于如何让它不再循环的任何建议?

所有数据类型都是双精度的(tempTimeTaken 是 int 除外) - 初始值不同 - 它们在不同的活动中输入,并通过 sharedpref 传送到该活动,默认值为 0

【问题讨论】:

  • 添加rate1 amount1 amount2等的数据类型和初始值,使程序完整,以便调试
  • 查看上面的更新类型
  • 如果 ratenewPmt 具有合理的值,则此方法有效。你能提供你使用的确切值吗?此外,您可以尝试记录循环执行步骤,然后使用logcat 来检查它们。至少你可以确认它无限循环。
  • 我会尝试这些步骤 - 对于利率,我使用 1 - 3.5 的任何值作为 newPmt 我使用了 500-2500 的任何值(debtPayment 为 500 + addPayment 为 20 等)
  • 更新我之前的评论 - 它也不会让我调试,卡在(理论上)在那些循环中 - 我正在重新格式化,如果我有答案会发布 - 我仍然开放并寻找建议。

标签: android while-loop do-while


【解决方案1】:

while循环的一般格式是

while(check condition against loop counter){
     //do your things
     increment/ decrement loop counter
}

在你的循环中

 while(amount1>0){
     amount1 = (amount1 * rate1) - newPmt;
     tempTimeTaken++;
 }

您正在为循环计数器 amount1 分配新值并增加 tempTimeTaken。在此循环中打印 amount1 的值,检查它是否在某个时间点变为负数,例如。

while(amount1>0){
    amount1 = (amount1 * rate1) - newPmt;
    Log.d("loop","Value of amount1 :"+amount1);
    tempTimeTaken++;
}

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 2016-03-14
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多