static void Main(string[] args)
{
double balance, interestRate, targetBalance;
Console.WriteLine("What is you current balance?");
balance = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("What is you current annual interest tate (in%)?");
interestRate = 1+Convert.ToDouble(Console.ReadLine())/100.0;
            Console.WriteLine("What balance woule you like to have?");
targetBalance = Convert.ToDouble(Console.ReadLine()); int totalYears = 0;
do
{
balance*=interestRate;
++totalYears;
}
while(balance<targetBalance);//不可以理解的就是这段
Console.WriteLine("In {0} year {1} you'll have a balance of {2}",totalYears,totalYears==1?"":"s",balance);

}这段代码中为什么是< 而不是>呢?  无法理解希望多多指教! 解释给我听听好么??

解决方案 »

  1.   

    while(balance<targetBalance);//不可以理解的就是这段
      

  2.   

    E文不行,没看懂。
    好像是先问你现在存款多少,利息多少,你希望最终有多少钱。那么,这个程序是告诉你过了多少年你才能拥有你希望拥有的数目。
    do
    {
    balance*=interestRate;
    ++totalYears;
    }
    while(balance<targetBalance);//targetBalance是你最终希望的数目,那么在循环里++totalYears就等于是在帮你计算要经过多少年。就像是开始100,你希望300
    do
    {
       存款 = 存款 * 利息;
       年度 = 年度 + 1;
    }while(存款 < 希望的数目) //难道你希望过几年存款越来越少不成:-) 或者说每过一年存款会随着利息增加,循环会执行到达到你希望的数目为止。
      

  3.   

    这是一个do...while 块,首先interestRate是大于1的,所以balance*=interestRate后,balance会越来越大,块里边的语句一直执行,直到balance大于targetBalance后才跳出,
    如果按照你的想法,如果一开始balance就大于targetBalance,会造成死循环
      

  4.   

    存款=100;
    do
    {
       存款 = 存款 * 利息;
       年度 = 年度 + 1;
    }while(存款 < 300) //要达到300,我要经过多少年?!