C#——while循环语句

来源:互联网 发布:协同服务器端口 编辑:程序博客网 时间:2024/05/19 17:57

循环语句有两种形式,具体结构如下图。

 

注意两种结构的区别:

while:先判断,后执行。

do ……while:先执行,后判断(至少执行一次)。

 
 

具体应用看下面的例子。

(一)while循环

 

(1)死循环:while后的小括号中的表达式始终为true.

 

(如例1):打印1,2,3,4……

[csharp] view plaincopyprint?
  1. namespace While循环  
  2. {  
  3.     class Program  
  4.     {     
  5.      
  6.         static void Main(string[] args)  
  7.         {  
  8.             /*  死循环 
  9.             while (true)            
  10.             { 
  11.                 Console.WriteLine("我在运行"); 
  12.             } 
  13.             Console.ReadKey();  //报错:检测到无法访问的代码(死循环了,无法执行到这里) 
  14.              */  
  15.   
  16.              
  17.             //例如:死循环,打印i  
  18.             int i = 0;  
  19.             while (true)   //每执行一遍大括号中的代码,while后的表达式都会被计算一次。  
  20.             {  
  21.                 i++;  
  22.                 Console.WriteLine(i);  
  23.             }  
  24.             Console.ReadKey();        
  25.         }  
  26.     }  
  27. }  


 

注意:每执行一遍大括号中的代码,while后的表达式都会被计算一次。

     只要while后小括号中的表达式为true,就不断执行大括中的代码。

 

(2)while循环

例2:打印从1到10的整数。

[csharp] view plaincopyprint?
  1. namespace While循环  
  2. {  
  3.     class Program  
  4.     {      
  5.         static void Main(string[] args)  
  6.         {  
  7.             //例如:打印从1到10的整数。  
  8.             int i = 0;  
  9.             while (i<10)  
  10.             {  
  11.                 i++;  
  12.                 Console.WriteLine(i);  
  13.             }  
  14.             Console.ReadKey();        
  15.         }  
  16.     }  
  17. }  

从下面的代码对比中注意例1和例2的区别:

[csharp] view plaincopyprint?
  1. namespace While循环  
  2. {  
  3.     class Program  
  4.     {     
  5.      
  6.         static void Main(string[] args)  
  7.         {  
  8.             /*     例如:死循环,打印i 
  9.             int i = 0; 
  10.             while (true)   //每执行一遍大括号中的代码,while后的表达式都会被计算一次。 
  11.             { 
  12.                 i++; 
  13.                 Console.WriteLine(i); 
  14.             } 
  15.             Console.ReadKey(); 
  16.             */  
  17.   
  18.   
  19.             // 打印从1到10的整数:1 2 3 4……10  
  20.             int i = 0;  
  21.             while (i<10)   //为什么打印的结果是1 2 3……10,而不是0……9或是0……10  
  22.             {  
  23.                 i++;  
  24.                 Console.WriteLine(i);  
  25.             }  
  26.             Console.ReadKey();       
  27.         }  
  28.     }  
  29. }  


注意例1例2的区别:问题:为什么例2打印的结果是1 2 3……10,而不是0……9或是0……10?

 

(二)do……while语句

 注意:do while 先执行,后判断(至少执行一次如例3)。

 例3:

[csharp] view plaincopyprint?
  1. namespace While循环  
  2. {  
  3.     class Program  
  4.     {     
  5.         static void Main(string[] args)  
  6.         {  
  7.             // 打印1 2 3……10  
  8.             int i=0;  
  9.             do        //先执行一次,再判断。  
  10.             {  
  11.                 i++;  
  12.                 Console.WriteLine(i);  
  13.             }  
  14.             while (i < 10);  
  15.             Console.ReadKey();       
  16.         }  
  17.     }  
  18. }  

 例2和例3的打印结果是一样的,但二者是有区别的,这上两个例子就是下面这句化的例证。

while:先判断,后执行(例2)。

do ……while:先执行,后判断(例3)。

 

0 0