如何在ASP.NET中回显或打印以测试if-else条件

本文关键字:打印 测试 条件 if-else ASP NET | 更新日期: 2023-09-27 18:21:59

我正在尝试在ASP.NET中制作一个简单的时间计算程序,人们可以在其中输入金额、年利息和每月付款。

我需要以月为单位计算出偿还债务和利息的时间,我想使用if else条件测试月供金额是否小于月利息金额,但它似乎不起作用。如果我提供的月供小于月利息金额,则程序将挂起。

我的代码:

protected void btnCalculate_Click(object sender, EventArgs e)
{
    if (IsValid)
    {
        int BorrowAmount = Convert.ToInt32(txtBorrow.Text);
        double InterestRate = Convert.ToDouble(txtRate.Text);
        int MonthlyPay = Convert.ToInt32(txtMAmount.Text);
        double Rammount = BorrowAmount;
        
        double monthlyIntRate = InterestRate / 12;
        //LblNoMonths.Text = Convert.ToString(monthlyIntRate);
        //LblNoMonths.Text = Convert.ToString(monthlyIntRate);
        double firstmonthlyIntRateAmt = ((monthlyIntRate / 100) * Rammount);
        
        
        if (MonthlyPay >= firstmonthlyIntRateAmt)
        {
            int month = 0;
            while (Rammount >= MonthlyPay)
            {
                month++;
                double monthlyIntRateAmt = ((monthlyIntRate / 100) * Rammount);
                Rammount = Rammount - (MonthlyPay - monthlyIntRateAmt);
            }
            LblNoMonths.Text = Convert.ToString(month);
        }
        else
        {
           
            LblNoMonths.Text ="Monthly payment is less than the monthly interest rate!!";
        }
        
       
    }
}

其他条件内的代码似乎没有影响:

LblNoMonths.Text =@"Monthly payment is less than the monthly interest rate!!";

我做错什么了吗?

如何在ASP.NET中回显或打印以测试if-else条件

只需在If语句(断点)上按F9即可开始调试。要继续前进,只需使用F10来遵循代码执行流程!;)您也可以使用VS监视窗口来查看每个值内的确切金额。。。没有什么能帮助你!

您告诉我们的是,您的程序似乎挂起了。我不能直接帮助你的逻辑(因为这取决于你想要执行的演算),但至少我可以为你指出一些事情来帮助解决问题

while条件可能是程序挂起的位置。根据变量设置的值,您可能永远不会退出此循环。你必须小心,如果这些值没有意义,你必须以一种退出条件的方式重新设计它。如果你真的被一些特定的值卡住了,检查它的方法是在调试模式下运行程序(并手动测试无限循环),或者你可以在while循环中使用计数器轻松地执行一些Console.WriteLine语句,并检查控制台窗口的输出,如果循环从未退出,这应该会给你提示。else子句也是如此,写入控制台调试输出,看看代码是否在那里输入,这应该会为您指明正确的方向。无论如何,这是为了识别问题,修复它可能需要更改代码逻辑(正如我告诉你的,当从业务角度来看有些事情没有意义时,在while循环中指定退出条件)