2.6 使用循环语句

  程序开发中,经常需要对某个代码块执行循环,使编译器能够重复执行某个代码块来完成计算。循环能够减少代码量,避免重复输入相同的代码行,也能够提高应用程序的可读性。常见的循环语句有for、while、do、for each。

2.6.1 for循环语句
  for循环一般用于已知重复执行次数的循环,是程序开发中常用的循环条件之一,当for循环表达式中的条件为true时,就会一直循环代码块。因为循环的次数是在执行循环语句之前计算的,所以for循环又称作预测式循环。当表达式中的条件为false时,for循环会结束循环并跳出。for循环语法格式如下所示。
for(初始化表达式,条件表达式,迭代表达式)
循环语句
  for循环的优点就是for循环的条件都位于同一位置,同样,循环的条件可以使用复杂的布尔表达式表示。for循环表达式包含三个部分,即初始化表达式、条件表达式和迭代表达式。当for循环执行时,将按照以下顺序执行。
? 在for循环开始时,首先运行初始化表达式。
? 初始化表达式初始化后,则判断表达式条件。
? 若表达式条件成立,则执行循环语句。
? 循环语句执行完毕后,迭代表达式执行。
? 迭代表达式执行完毕后,再判断表达式条件并循环。
for语句循环示意图2-21所示。

for循环示意图

图2-21 for循环示意图
开发人员能够通过编写for循环语句进行代码块的重复,示例代码如下所示。
+展开
-C#
            for (int i = 0; i < 100; i++) //循环100次
            {
                Console.WriteLine(i);//输出i变量的值
            }

技巧:for循环即可做增量操作也可以做减量操作,如可以写为for(int i=10;i>0;i--),说明for循环的结构非常灵活,同样for循环的条件,迭代表达式也不仅仅局限与此。

  for循环还可以声明多个变量,在初始化表达式和迭代表达式中声明不只一个变量,示例代码如下所示。
+展开
-C#
            for (int i = 0, j = 0; (i < 100) && (j < 100); i++, j++)//多个条件循环
            {
                Console.WriteLine("i is" + i);  //输出i变量的值
                Console.WriteLine("j is" + j); //输出j变量的值
            }


2.6.2 while循环语句
  while语句同for语句一样都可以执行循环,但是while的使用更加灵活,开发人员可以在代码块执行前判断条件,也可以在代码块执行一次后再行判断条件。

1.while语句的语法
  while语句是除了if语句以外另一个常用语句,while语句的使用方法基本上和if语句相同,其区别就在于,if语句一般需要先知道循环次数,而while语句即便不知道循环次数也可以使用。while语句基本语法如下所示。
while(布尔值)
执行语句
while语句包括两个部分,布尔值和执行语句,while语句执行步骤一般如下所示。
? 判断布尔值。
? 若布尔值为true则执行语句,否则跳过。
while语句循环示意图如图2-22所示。

while语句循环示意图

图2-22 while语句循环示意图
while语句示例代码如下所示。
+展开
-C#
            x = 100;//声明整型变量
            while (x != 1)//判断x不等于1
            {
                x--;//x自减操作
            }

  上述代码,声明并初始化变量x等于100,当判断条件x!=1成立时,则执行x—操作,直到条件x!=1不成立时才跳过while循环。

2.continue关键字:继续执行语句
在while语句中,可以使用continue语句来执行下一次迭代而不执行完所有的执行语句,示例代码如下所示。
+展开
-C#
            int x, y;//声明整型变量
            x = 10;//初始化x
            y = 10;//初始化y
            while (x != 1)//如果x不等于1
            {
                x--;//x自减操作
                Console.WriteLine(x);//输出x
                continue;//返回循环
                y--;//y自减操作(但不执行)
                Console.WriteLine(y);//输出y(但不执行)
            }

  上述代码声明了x,y两个整型变量,并初始化值为10,当x不等于1时执行while循环。在while循环语句中,当执行到continue关键字时则跳出并继续执行while循环而不执行continue关键字后的语句,如y—语句。

2.break关键字:跳出循环语句
break关键字允许程序在while循环中跳出并终止循环,从而能够继续执行循环后的语句,示例代码如下所示。
+展开
-C#
            while (x != 1)//如果x不等于1
            {
                x--;//x自减操作
                Console.WriteLine(x);//输出x
                if (x == 5)//如果x等于5
                {
                    break;//跳出循环
                }
            }

  上述代码判断x是否等于5。x如果等于5,则break语句会生效并跳出循环,继续执行while循环语句之后的代码。

2.6.3 do while循环语句
  do while循环和while循环十分相似,区别在于do while循环会执行一次执行语句,然后再判断while中的条件。这种循环成为后测试循环,当程序需要执行一次语句再循环的时候,do while语句是非常实用的。do while语句语法格式如下所示。
do
{执行语句}
while(布尔值);
  do while语句包含两个部分,执行语句和布尔值。与while循环语句不同的时,执行步骤首先执行一次执行语句,具体步骤如下所示。
? 执行一次执行语句。
? 判断布尔值。
? 若布尔值为true,则继续执行,否则跳出循环。
while语句循环示意图如图2-23所示。

do while语句循环示意图

图2-23 do while语句循环示意图
do while语句示例代码如下所示。
+展开
-C#
            int x=90;//声明整型变量
            do//首先执行一次代码块
            {
                x ++;//x自增一次
                Console.WriteLine(x);//输出x的值
            }
            while (x < 100);//判断x是不是小于100

上述代码在运行时会执行一次大括号内的代码块,执行完毕后才会进行相应的条件判断。

2.6.4 foreach循环语句
  for循环语句常用的另一种用法就是对数组进行操作,C#还提供了foreach循环语句,如果想重复集合或者数组中的所有条目,使用foreach是很好的解决方案。foreach语句语法格式如下
foreach (局部变量 in 集合)
执行语句;
? for each语句执行顺序如下所示。
? 集合中是否存在元素。
? 若存在,则用集合中的第一个元素初始化局部变量。
? 执行控制语句。
? 集合中是否还有剩余元素,若存在,则将剩余的第一个元素初始化局部变量。
? 若不存在,结束循环。
foreach循环示意图如图2-24所示。

foreach语句循环示意图

图2-24 foreach语句循环示意图
foreach语句示例代码如下所示。
+展开
-C#
            string[] str = { "hello""world""nice""to""meet""you" };//定义数组变量
            foreach (string s in str)//如果存在元素则执行循环
            {
                Console.WriteLine(s);//输出元素
            }

上述代码声明了数组str,并对str数组进行遍历循环。运行结果如图2-25所示。

foreach语句循环示例

图 2-25 foreach语句循环示例

注意:在使用foreach语句的时候,局部变量的数据类型应该与集合或数组的数据类型相同,否则编译器会报错。

加支付宝好友偷能量挖...


评论(0)网络
阅读(149)喜欢(0)Asp.Net/C#/WCF