Java 我的程序需要帮助';s while循环

Java 我的程序需要帮助';s while循环,java,while-loop,Java,While Loop,程序说明如下: 您刚刚购买了一套音响系统,按照以下信贷计划,价格为1000美元:无首期付款,年利率为18%(因此每月利率为1.5%),每月付款50美元。每月50美元用于支付利息,剩下的部分用于支付剩余债务。因此,您在第一个月支付1000美元利息的1.5%。利息是15美元。因此,剩下的35美元将从你的债务中扣除,剩下965.00美元的债务。下个月,你要为965.00美元支付1.5%的利息,也就是14.48美元。因此,您可以从您所欠的金额(965.00-14.48)中扣除35.52美元(50-14.

程序说明如下:

您刚刚购买了一套音响系统,按照以下信贷计划,价格为1000美元:无首期付款,年利率为18%(因此每月利率为1.5%),每月付款50美元。每月50美元用于支付利息,剩下的部分用于支付剩余债务。因此,您在第一个月支付1000美元利息的1.5%。利息是15美元。因此,剩下的35美元将从你的债务中扣除,剩下965.00美元的债务。下个月,你要为965.00美元支付1.5%的利息,也就是14.48美元。因此,您可以从您所欠的金额(965.00-14.48)中扣除35.52美元(50-14.48美元)。写一个程序,告诉你还清贷款需要多少个月,以及贷款期限内支付的利息总额。使用循环计算每个月之后的利息金额和债务规模。使用一个变量来计算循环迭代次数,从而计算债务为零之前的月数。如果债务较小,最后一次付款可能少于50英镑,但不要忘记利息

以下是我目前的代码:

    public class ProgrammingProject5
    {
         public static void main(String[] args)
         {
              double startingDebt = 1000;
              double interestPerMonth = 0.015;
              double moneyDuePerMonth = 50;
              double debt = startingDebt;
              int m = 0;

              while (debt > 0)
              {
                    double monthlyInterest = (startingDebt*interestPerMonth);
                    double monthlyOwed = moneyDuePerMonth - monthlyInterest;

                    debt = startingDebt - monthlyOwed;

                    m++;
              }

              System.out.println("The amount of months until debt is 0:  " + m);
     }
 }

我知道我做错了,我的月产量也错了。如果有人能帮助我,我将不胜感激。(我真的被卡住了。)

每个月所欠的利息是根据当前余额而不是期初余额计算的。不过,这确实不是回答这个问题的合适地方。试试这个

public class ProgrammingProject5 {
    public static void main(String[] args) {
        double startingDebt = 1000;
        double interestPerMonth = 0.015;
        double moneyDuePerMonth = 50;
        double debt = startingDebt;
        int m = 0;

        while (debt > 0) {
            double monthlyInterest = (debt*interestPerMonth);
            double monthlyOwed = moneyDuePerMonth - monthlyInterest;

            debt = debt - monthlyOwed;

            m++;
        }

        System.out.println("The amount of months until debt is 0:  " + m);
    }
}

那么代码本身运行吗?这看起来更像是一个数学问题,而不是java问题。“我知道我做错了,我的月输出也错了”代码做了什么,你希望它做什么?你每次都用起始余额计算月利息,我认为应该用当前余额来计算。压痕在接近尾端时会变得很奇怪。javac不会在意,但有些人会在意。你不需要一个
startingDebt
变量。只需将
debt
初始化为
1000
,并在循环中的
startingDebt
页面中使用
debt
。您得到错误输出的原因是,您使用了
启动债务
(您永远不会更改)来代替
债务
(应该更改)。