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

时间:2012-01-29 09:14:40

标签: c# asp.net

我正在尝试在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 = @“每月付款低于每月利率!!”;

我做错了什么,请非常感谢任何帮助,并提前感谢你们

2 个答案:

答案 0 :(得分:1)

对于你告诉我们的内容,看起来你的程序挂起了。我不能直接用你的逻辑帮助你(因为这取决于你想要执行什么计算),但至少我可以指出一些有助于解决问题的方法

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

答案 1 :(得分:1)

按下If语句(断点)上的F9并开始调试。前进只需使用F10来执行代码执行流程! ;)您还可以使用VS观察窗口查看每个值内的确切数量......没有其他任何东西可以帮助您!