结构化编程:不确定迭代循环控制do while

很多时候,我们需要重复的执行一些代码,这样我们就需要迭代循环控制。以下案例描述了如何控制重复的执行。

假设,你购买房子的首付需要30万人民币,你入职工作的第一年,每月工资是3500,以后每年薪水增长20%。你是一个很有计划的人,无论薪水多少,你都将收入的一半存起来。那么,你需要多少年可以存到你需要的首付呢?


  1. static void Main(string[] args)  
  2. {  
  3.  
  4.     const double HOUSEFOUND = 200000;           //购房的首付款20W,常数  
  5.     double salary = 3500;                       //第一年的工资/月  
  6.     double fund = 0;                            //住房基金  
  7.     int years = 1;                              //年计数器  
  8.     while (fund < HOUSEFOUND)                   //存的基金不够首付,就继续存  
  9.     {  
  10.         fund += salary * 0.5 * 12;             //工资的50%是交纳住房基金  
  11.         years++;                                //加一年  
  12.         salary = salary * 1.2;                  //每年工资增加20%             
  13.     }  
  14.     System.Console.WriteLine("哎,钱攒{0}年了", years);  
  15.     Console.WriteLine("终于攒到了{0},命苦啊", fund.ToString("f0"));  

while语句,每次开始执行循环前需要进行判断,如果首次条件不满足,就不会进行循环执行。如果你至少要执行一次循环体中的代码,那就需要使用do语句。

 


  1. static void Main(string[] args)  
  2. {  
  3.  
  4.     const double HOUSEFOUND = 200000;           //购房的首付款20W,常数  
  5.     double salary = 3500;                       //第一年的工资/月  
  6.     double fund = 0;                            //住房基金  
  7.     int years = 1;                              //年计数器  
  8.     do 
  9.     {  
  10.         fund += salary * 0.5 * 12;             //工资的50%是交纳住房基金  
  11.         years++;                                //加一年  
  12.         salary = salary * 1.2;                  //每年工资增加20%              
  13.     }  
  14.     while (fund < HOUSEFOUND);  
  15.     System.Console.WriteLine("哎,钱攒{0}年了", years); //存的基金不够首付,就继续存  
  16.     Console.WriteLine("终于攒到了{0},命苦啊", fund.ToString("f0"));  

使用do语句,控制的途径将至少进入循环体内一次。

 

初学者注意:

do循环中,一定要有机制确保循环终止,否则会出现死循环。dowhile循环在语法上有一个差异值得重视,即do循环中while关键字之后需要使用;结束。而while循环通过{}控制语句的结束。



本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/805198

上一篇:CentOS7安装字体库


下一篇:java-Source Sans Pro的TTF和OTF版本在Swing(Nimbus L&F)中的显示方式有所不同