当前位置:文档之家› 第六章流程控制语句

第六章流程控制语句

第六章流程控制语句
语句是程序完成一次完整操作的基本单位。

默认情况下,程序的语句是顺序执行的。

但是,如果一个程序只有顺序执行的语句,那么程序可以什么也做不了。

在C# 中有很多语句,通过这些语句可以控制程序代码的执行次序,提高程序的灵活性,从而实现比较复杂的程序。

6.1 选择语句
选择语句用于根据某个表达式的值从若干条给定语句中选择一个来执行。

选择语句包括if语句和swith语句两种。

6.1.1 if...else语句
If语句用于根据一个布尔表达式的值选择一条语句来执行。

基本格式:
If(布尔表达式)
{
【代码块】
}
If(布尔表达式)
{
【代码块】
}
Else
{
【代码块】}
If(){
}
Else
{
【代码块】
}
}
Else
{
If(布尔表达式) {
【语句块3】
}
Else
{
【语句块4】
}
}
在if…else语句中可以对其扩展,使用else if(条件)语句来处理多个条件。

在if语句中,可以使用return语句退出if语句所在的类的方法中。

6.1.2 使用switch语句实现多分支选择
Switch 语句是多分支选择语句,它根据表达式的值来使程序从多个分支中选择一个用于执行的分支。

基本格式:
Switch(【表达式】)
{
case 【常量表达式】:【语句块】 break;
……
case 【常量表达式】:【语句块】 break;
default:【语句块】
break;
}
表达式的类型必须是sbyte,byte,short,ushort,int,uint,long,ulong,char,string,枚举类i 型中的一种。

常量表达式的值必须是与表达式的类型兼容的常量,并且在一个switch语句中,不同的case关键字后面的常量表达式必须不同。

Switch 语句可以包括任意数目的case实例,但是任何两个case语句都不能具有相同的值。

6.2 迭代语句
迭代语句主要用于重复执行嵌入语句,C#中常见迭代语句有 while Do...while for foreach
6.2.1 while语句
While(【布尔表达式】)
{
【语句块】
}
While 语句的执行顺序:
(1)计算布尔表达式的值
(2)如果布尔表达式的值true,程序执行语句块。

执行完毕重新计算布
尔表达式的值是否为true
(3)如果布尔表达式的值为false,则控制将转移到while语句的结尾。

在循环语句中,可以通过goto return throw 语句退出。

6.2.2 do…while语句
Do……while循环会在计算条件表达式之前执行一次。

基本形式:
Do
{
【语句块】
}while(【布尔表达式】)
Do…while 语句的执行顺序:
(1)程序首先执行【语句块】。

(2)当程序到达语句块的结束点时,计算布尔表达式的值。

如果布尔表达式的值。

如果布尔表达式是true,程序转到do...while语句的开头;否则结束循环。

6.2.3 for语句
For语句用于计算一个初始化序列,然后当某个条件为真时,重复执行嵌套语句并计算一个迭代表达式序列,如果为假,则终止循环,退出for循环。

基本形式:
For(【初始化表达式】;【条件表达式】;【迭代表达式】)
{
【语句块】
}
For语句执行的顺序:
(1)如果有初识化表达式,则按变量初识值设定项或语句表达式的书写顺序指定它们,此步骤只执行一次。

(2)如果存在条件表达式,则计算它。

(3)如果不存在条件表达式,则程序将转移到嵌入语句。

如果程序到达了嵌入语句的结束点。

按顺序计算for迭代表达式,然后从上一个步骤中for条件的计算开始,执行另一次迭代。

For 循环是循环语句中最常用的一种,它体现了一种规定次数,逐次反复的功能。

在应用for循环体时,循环体中的3个条件不能为空,如for(;;),for语句将出现死循环。

6.2.4 foreach语句
foreach语句用于枚举一个集合的元素,并对该集合中的每个元素执行一次嵌入语句。

foreach语句不应用于更改集合内容,以避免产生不可预知的错误。

基本形式:
Foreach(【类型】【迭代变量名】in【集合类型表达式】)
{
【语句块】
}
类型和迭代变量名用于声明迭代变量,迭代变量相当于一个范围覆盖整个
语句块的局部变量,在foreach语句执行期间,迭代变量表示正在为其执行的集合元素。

集合类型表达式必须有一个从该集合的元素类型的显示转换,如果集合类型表达式的值为null,则会出现异常。

foreach语句也可以用于循环访问数组中的元素。

6.3 跳转语句
跳转语句主要用于无条件地转移控制,跳转语句会控制转到某个位置,这个位置就成为跳转语句的目标。

如果跳转语句出现在一个语句块内,而跳转语句的目标却在该语句块之外,则称该跳转语句退出该语句块。

跳转语句主要包括break continue goto return
6.3.1 break语句
当多条switch while do…while for foreach 语句互相嵌套时,break语句只应用于最里层的语句。

如果要穿越多个嵌套层,则必须使用goto语句。

6.3.2 continue语句
用于结束本次循环直接进入下一次循环。

当多条迭代语句互相嵌套,continue语句只能使直接包含它的循环语句开始一次新的循环
6.3.3 goto语句
Goto语句用于将控制转移到标签标记的语句。

Goto语句可以被应用在
switch语句中的case标签和default标签,以及标记语句所声明的标签。

3种形式:
Goto 【标签】
Goto case【参数表达式】
Goto default
Goto标签语句的目标是具有给定标签的标记语句,goto case语句的目标是它所在的switch语句中某个语句列表,此列表包含一个具有给定常数值的case标签,goto default语句的目标是它所在的那个switch语句中的default标签。

Goto语句的一个通常用法是将控制传递给特定的switch…case标签或switch语句中的默认标签,goto语句还用于跳出深嵌套循环。

虽然goto语句有一定的使用价值,但是目前对它的使用存在争议。

有人建议避免使用它,有人建议把它用作排除错误的基本工具,各种观点截然不同。

虽然不用goto语句也能够编程,但是仍然有人使用它。

6.3.4 return语句
Return语句用于退出类的方法,是控制返回值的调用者。

如果方法有返
回类型,return语句必须返回这个类型的值;如果方法没有返回类型,应使用没用表达式的return语句。

6.4 小结
本章详细介绍了选择语句,迭代语句和跳转语句的概念及用法。

在程序中,语句是程序完成一次操作的基本单位,而流程语句控制语句执行的顺序,在讲解流程语句过程中,通过实例演示每种语句的用法。

在阅读过程中,要重点掌握if语句,switch语句,for语句和while语句的用法,因为这几种语句在程序开发中会经常用到。

相关主题