Visual C#(学习笔记)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 流程控制语句

在程序中,经常需要转移或改变程序的执行顺序,为了实现这一目的,需要使用流程控制语句。C#语言中提供了下面几种语句用于流程控制。

条件语句:if...else,switch...case;

循环语句:while,do,for,foreach;

跳转语句:break,continue。

2.4.1 条件语句

条件语句用于根据条件判断选择所要执行的一组语句。条件语句也称为选择语句,C#中提供了if...else和switch...case语句执行条件分支的选择。

1. if语句

if语句是最常用的条件语句,它根据一个布尔表达式的结果选择执行两个不同的代码块。

C#中if语句的语法格式如下:

或者:

注意

C#中,表达式的计算结果必须是布尔型。C#编译器能识别出这一类的错误。

示例1:

示例2:

如果程序中逻辑判断比较复杂,可以使用条件判断嵌套语句。格式如下:

        if (条件表达式)
        {
                  if(条件表达式)
                  {
        语句块;
        }
                  else
                  {
                    语句块;
                  }
        ……;
        }
        else
        {
                  if(条件表达式)
                  {
        语句块;
        }
                  else
                  {
                    语句块;
                  }
        ……;
        }

注意 在嵌套的if语句中,else子句属于最后一个没有对应的elseif

例如:

如果希望使语句2和条件if(i>5)关联,则可使用大括号,如下所示:

2. switch...case语句

if语句每个判断只能实现两条分支,若要实现多个选择分支的功能,可以使用switch语句。

switch语句可以用来代替多重if语句。switch语句根据控制表达式的值选择一个分支语句并执行,格式如下:

注意

switch 语句可以有任意多个case实例,但是任何两个case语句都不能具有相同的值。且在C#中必须为每一个case块指定一个跳转语句(如break语句或goto语句),否则会出现编译器错误。

2.4.2 循环语句

循环语句可以重复运行一个或多个语句,从而实现了程序的简化。C#中提供了以下4种循环语句:

◆ while循环

◆ do循环

◆ for循环

◆ foreach循环

1. while循环

while循环根据条件,将一个语句或语句块重复执行零遍或若干遍。while循环的格式如下:

        while (条件)
        {
          语句(或语句块);
        }

while循环的执行过程为:

1 判断条件是否为真;

2 当条件为真时,执行一遍语句或语句块,然后转到第一步;

3 当条件为假时,while循环结束。

示例:以下while循环用于向控制台写入从1到10的累加和。

注意

while循环中的变量i用于控制循环的次数,所有while循环都应该在某个时候终止。

while循环中可以使用continue语句跳过当前循环并开始下一个循环,也可以使用break语句来结束循环。

示例:以下while循环中使用break语句来实现从1到10的累加和的计算。

示例:以下while循环中使用continue语句来实现计算1到100中奇数的和。

2. do循环

do...while循环与while循环类似,不同之处在于,do...while循环即使条件为假时也会执行一次循环体中的语句,即do...while循环根据条件,将一个语句或语句块重复执行一遍或若干遍。C#中do...while循环的格式如下:

        do
        {
          语句(或语句块);
        }while(条件)

3. for循环

for循环要求对特定的条件进行判断后才可以执行循环,并将语句或语句块重复执行预定的次数。因此在已知循环次数的情况下,使用for循环比较方便。for循环的格式如下:

        for(初始化;条件;改变控制变量)
        {
          语句(或语句块);
        }

for循环的执行过程如下:

1 执行一遍初始化,为循环控制变量赋初始值;

2 判断条件是否为真;

3 如果条件为真,则执行循环中的语句或语句块,然后改变循环控制变量的值,回到第二步;

4 如果条件为假,for循环终止。

注意

for语句的初始化、条件和改变控制变量这三个部分必须使用分号分隔。初始化只在循环开始时发生一次。条件的判断发生在循环执行之前,因此 for 语句执行零遍或若干遍。

for语句中的三个部分都是可选的。如果省略条件部分,则条件默认为真,这时for循环中的语句或语句块将永远运行。例如:

可根据需要在for语句中给出多个初始化语句和多个改变控制变量的语句,此时需要使用逗号来分隔不同的初始化语句和改变控制变量的语句。例如:

4. foreach循环

foreach循环是C#中新引入的语句,一般用于遍历整个数组或集合,但不会改变数组或集合中的内容。foreach循环的格式如下:

        foreach(类型 元素(变量名称)in  数组或集合)
        {
          语句(或语句块);
        }

循环体为数组或集合中的每个元素执行一次。

示例:以下foreach循环实现向控制台写入数组中的内容的功能。

2.4.3 跳转语句

使用跳转语句将导致立即传递程序控制。在C#语言中跳转语句使用下列关键字:

◆ break

◆ continue

◆ goto

◆ return

◆ throw

前面已经介绍过break和continue语句,这一节主要介绍goto,return和throw语句。

1. goto语句

goto语句能将程序控制直接传递给标记语句。goto语句可以用于以下两个方面:

◆ 将控制传递给特定的switch...case标签或switch语句中的默认标签;

◆ 跳出深嵌套循环。

示例:使用goto语句将控制传递给特定的switch...case标签。

一定要认真观察下面的代码哦……

下面的代码演示了使用goto跳出嵌套循环的过程。

2. return语句

return语句终止它出现在其中的方法的执行并将控制返回给调用方法。它还可以返回一个可选值,如果方法为void类型,则可以省略return语句。

示例:在计算圆周长的方法CalZc()中以double的形式返回变量zc。

3. throw语句

throw语句用于发出在程序执行期间出现反常情况(异常)的信号,通常与try...catch或try...finally语句一起使用。当引发异常时,程序查找处理此异常的catch语句,也可以用throw语句重新引发已捕获的异常。有关throw语句的详细讲述参见第7章。