循环语句有两种形式,具体结构如下图。
注意两种结构的区别:
while:先判断,后执行。
do ……while:先执行,后判断(至少执行一次)。
具体应用看下面的例子。
(一)while循环
(1)死循环:while后的小括号中的表达式始终为true.
(如例1):打印1,2,3,4……
- namespace While循环
- {
- class Program
- {
- static void Main(string[] args)
- {
- /* 死循环
- while (true)
- {
- Console.WriteLine("我在运行");
- }
- Console.ReadKey(); //报错:检测到无法访问的代码(死循环了,无法执行到这里)
- */
- //例如:死循环,打印i
- int i = 0;
- while (true) //每执行一遍大括号中的代码,while后的表达式都会被计算一次。
- {
- i++;
- Console.WriteLine(i);
- }
- Console.ReadKey();
- }
- }
- }
注意:每执行一遍大括号中的代码,while后的表达式都会被计算一次。
只要while后小括号中的表达式为true,就不断执行大括中的代码。
(2)while循环
例2:打印从1到10的整数。
- namespace While循环
- {
- class Program
- {
- static void Main(string[] args)
- {
- //例如:打印从1到10的整数。
- int i = 0;
- while (i<10)
- {
- i++;
- Console.WriteLine(i);
- }
- Console.ReadKey();
- }
- }
- }
从下面的代码对比中注意例1和例2的区别:
- namespace While循环
- {
- class Program
- {
- static void Main(string[] args)
- {
- /* 例如:死循环,打印i
- int i = 0;
- while (true) //每执行一遍大括号中的代码,while后的表达式都会被计算一次。
- {
- i++;
- Console.WriteLine(i);
- }
- Console.ReadKey();
- */
- // 打印从1到10的整数:1 2 3 4……10
- int i = 0;
- while (i<10) //为什么打印的结果是1 2 3……10,而不是0……9或是0……10
- {
- i++;
- Console.WriteLine(i);
- }
- Console.ReadKey();
- }
- }
- }
注意例1例2的区别:问题:为什么例2打印的结果是1 2 3……10,而不是0……9或是0……10?
(二)do……while语句
注意:do while 先执行,后判断(至少执行一次如例3)。
例3:
- namespace While循环
- {
- class Program
- {
- static void Main(string[] args)
- {
- // 打印1 2 3……10
- int i=0;
- do //先执行一次,再判断。
- {
- i++;
- Console.WriteLine(i);
- }
- while (i < 10);
- Console.ReadKey();
- }
- }
- }
例2和例3的打印结果是一样的,但二者是有区别的,这上两个例子就是下面这句化的例证。
while:先判断,后执行(例2)。
do ……while:先执行,后判断(例3)。