1、2022/11/61C#程序设计经典程序设计经典教程教程第三章第三章 C#程序的流程控制程序的流程控制 1.总体要求总体要求l理解分支的概念,掌握理解分支的概念,掌握if语句和语句和switch语句的使用方法语句的使用方法l理解循环的概念,掌握理解循环的概念,掌握while、do/while、for、foreach语句的使用方法语句的使用方法l理解分支嵌套、循环嵌套的概念,了解相关应用理解分支嵌套、循环嵌套的概念,了解相关应用l了解了解goto语句,掌握语句,掌握continue和和break语句的使用方法语句的使用方法l2.相关知识点相关知识点lif语句和语句和switch语句语句lwhil
2、e、do/while、for、foreach语句语句3.学习重点学习重点分支嵌套和循环嵌套分支嵌套和循环嵌套2022/11/63第三章第三章 C#程序的流程控制程序的流程控制主要内容主要内容l l3.1 C#程序的分支语句程序的分支语句l l3.2 C#程序的循环语句程序的循环语句l l3.3 跳转语句跳转语句2022/11/643.1 C#程序的分支语句程序的分支语句l l3.1.1 if 语句语句l3.1.2 switch语句语句 返回返回2022/11/653.1.1 if语句语句lif语句也称为条件语句、选择语句,用于实现程序的分支结语句也称为条件语句、选择语句,用于实现程序的分支结构
3、,根据条件是否成立来控制执行不同的程序段,完成相构,根据条件是否成立来控制执行不同的程序段,完成相应的功能。应的功能。lif语句的一般形式如下:语句的一般形式如下:if(表达式表达式)语句块语句块1 else 语句块语句块2 lif语句的逻辑意义为:如果表达式的值为语句的逻辑意义为:如果表达式的值为true,则选择执行,则选择执行“语句块语句块1”,否则选择执行,否则选择执行“语句块语句块2”,如图,如图3-1所示。所示。l“ifelse”的结构通常称为双分支结构。实际编程时,的结构通常称为双分支结构。实际编程时,可省略可省略else子句,构成单分支结构。当子句,构成单分支结构。当“语句块语句
4、块1”或或“语语句块句块2”只有一条语句时,可以省略花括号只有一条语句时,可以省略花括号,还可以在同,还可以在同一行书写。一行书写。l例如,设例如,设x为为int型变量,型变量,l if(x%2=0)Console.Write(x为偶数为偶数);l就是典型的单分支结构。就是典型的单分支结构。3.1.1 if语句语句l双分支结构的替代方案双分支结构的替代方案l在在C#中,如果双分支结构比较简单,可使用问号中,如果双分支结构比较简单,可使用问号?运算符来替代?运算符来替代if语句。问号运算符的一般格式如语句。问号运算符的一般格式如下:下:(表达式表达式1)?表达式?表达式2:表达式表达式3其逻辑含
5、义为:如果表达式其逻辑含义为:如果表达式1的值为的值为true,则返回表达,则返回表达式式2的值,否则返回表达式的值,否则返回表达式3的值。的值。3.1.1 if语句语句例如,设例如,设x为为int型变量,型变量,string result=(x%2=1)?x为奇数为奇数:x为偶数为偶数;该语句相当于该语句相当于string result;if(x%2=1)result=x为奇数为奇数;else result=x为偶数为偶数;l使用问号运算符来构造双分支结构,要比使用问号运算符来构造双分支结构,要比if语句更加简练语句更加简练3.1.1 if语句语句l【实例实例3-1】创建一个创建一个Wind
6、ows应用程序,先输入应用程序,先输入年龄值,再判断是否大于年龄值,再判断是否大于18,最后显示判断结果,最后显示判断结果,运行效果如图所示。运行效果如图所示。3.1.1 if语句语句3.1.1 if语句语句l在在Windows窗体中添加窗体中添加2个个Label、1个个TextBox和和1个个Button控控件。各控件的主要属性设置见表件。各控件的主要属性设置见表3-1。控件属性属性设置Label 1Text请输入学生年龄Label2NamelblshowTextbox1NametxtAgeButton1 NamebmOkText确定3.1.2 switch语句语句 l当判断的条件较多,不止
7、一两个分支时,可使用当判断的条件较多,不止一两个分支时,可使用switch语句。语句。switch语句专用于实现多分支结构,语句专用于实现多分支结构,其语法更简洁,能处理复杂的条件判断。其语法更简洁,能处理复杂的条件判断。switch语句的一般格式如下:语句的一般格式如下:lswitch(表达式表达式)case 常量常量1:语句块语句块1;break;case 常量常量2:语句块语句块2;break;case 常量常量n:语句块语句块n;break;default:语句块语句块n+1;3.1.2 switch语句语句 lswitch语句的执行过程为:语句的执行过程为:l首先计算首先计算swit
8、ch语句中表达式的值,再依次与每语句中表达式的值,再依次与每一个一个case后的常量比较,当表达式的值与某个常后的常量比较,当表达式的值与某个常量相等时,则执行该量相等时,则执行该case后的语句块,在执行后的语句块,在执行break语句之后跳出语句之后跳出switch结构,继续执行结构,继续执行switch之后的语句,如图之后的语句,如图3-3所示。如果所有常量都不等所示。如果所有常量都不等于于switch中表达式的值,则执行中表达式的值,则执行default之后的语之后的语句块。如果没有句块。如果没有 default子句,则执行子句,则执行switch语句语句后面的语句。后面的语句。3.1
9、.2 switch语句语句 l【实例【实例3-2】创建一个创建一个Windows应用程序,使用应用程序,使用switch语句来计算不同服装的应付款,运行效果语句来计算不同服装的应付款,运行效果如图所示如图所示 3.1.2 switch语句语句 3.1.3 分支语句的嵌套分支语句的嵌套l无论是无论是if语句,还是语句,还是switch语句,其中的语句可以语句,其中的语句可以任何语句,包括任何语句,包括if语句或语句或switch。如果。如果if语句或语句或switch语句包含了语句包含了if或或switch语句,则称之为嵌套语句,则称之为嵌套的分支语句。其中,嵌套的的分支语句。其中,嵌套的if语
10、句也可以用来构建语句也可以用来构建多分支结构的程序,以替代多分支结构的程序,以替代switch语句。语句。3.2 C#程序的循环语句程序的循环语句 l3.2.1 While语句语句l3.2.2 do/while语句语句l3.2.3 for语句语句 l3.2.4 foreach语句语句l3.2.5 循环语句的嵌套循环语句的嵌套返回返回3.2.1 while语句语句lwhile语句表达的逻辑含义是:当逻辑条件成立时,语句表达的逻辑含义是:当逻辑条件成立时,重复执行某些语句,直到条件不成立时终止,从而重复执行某些语句,直到条件不成立时终止,从而不再循环。因此在循环次数不固定时不再循环。因此在循环次数
11、不固定时while语句相语句相当有用。当有用。while语句的一般形式为:语句的一般形式为:while(表达式表达式)语句块;语句块;其中,表达式必须是布尔型表达式,用来检测循环其中,表达式必须是布尔型表达式,用来检测循环条件是否成立,语句块为循环体条件是否成立,语句块为循环体 lwhile语句执行过程如下:首先计算表达式,当表语句执行过程如下:首先计算表达式,当表达式的值为达式的值为true时,执行一次循环体中的语句,重时,执行一次循环体中的语句,重复上述操作到表达式的值为复上述操作到表达式的值为false时退出循环。如时退出循环。如果表达式的值在开始时就为果表达式的值在开始时就为false
12、,那么不执行循,那么不执行循环体语句直接退出循环。因此,环体语句直接退出循环。因此,while语句的特点语句的特点是:先判断表达式,后执行语句。是:先判断表达式,后执行语句。3.2.1 while语句语句l【实例实例3-4】求,即求,即1+2+3+1003.2.1 while语句语句ldo-while语句的特点是先执行循环体,然后判断语句的特点是先执行循环体,然后判断循环条件是否成立,其一般形式为:循环条件是否成立,其一般形式为:do 语句块语句块;while(表达式表达式);l其中,语句块为循环体,表达式必须是布尔型表达其中,语句块为循环体,表达式必须是布尔型表达式,用来检测循环条件是否成立
13、。式,用来检测循环条件是否成立。3.2.2 do/while语句语句ldo-while语句执行过程如下:首先执行一次循环语句执行过程如下:首先执行一次循环体,然后再计算表达式,如果表达式的值为体,然后再计算表达式,如果表达式的值为true,则再执行一次循环体,重复上述操作,直到表达式则再执行一次循环体,重复上述操作,直到表达式的值为的值为false时退出循环。如果条件在开始时就为时退出循环。如果条件在开始时就为false,那么执行一次循环体语句后退出循环。,那么执行一次循环体语句后退出循环。l可见,可见,while语句与语句与do/while语句的区别在于:前语句的区别在于:前者循环体执行的次
14、数可能是者循环体执行的次数可能是0次,而后循环体执行次,而后循环体执行的次数至少是的次数至少是1次。次。3.2.2 do/while语句语句l【实例实例3-5】创建一个创建一个Windows应用程序,统计从应用程序,统计从键盘输入一行字符中英文字母的个数。键盘输入一行字符中英文字母的个数。3.2.2 do/while语句语句3.2.3 for语句语句 lfor语句与语句与while语句、语句、do/while语句一样,可以循语句一样,可以循环重复执行一个语句或语句块,直到指定的表达式环重复执行一个语句或语句块,直到指定的表达式计算为计算为 false 值。值。for语句的一般形式为:语句的一般
15、形式为:for(表达式表达式1;表达式表达式2;表达式表达式3)语句块语句块;l其中,表达式其中,表达式1为赋值表达式,通常用于初始化循为赋值表达式,通常用于初始化循环控制变量;表达式环控制变量;表达式2为布尔型的表达式,用来检为布尔型的表达式,用来检测循环条件是否成立;表达式测循环条件是否成立;表达式3赋值表达式,用来赋值表达式,用来更新循环控制变量的值,以保证循环能正常终止更新循环控制变量的值,以保证循环能正常终止lfor语句的执行过程详细如下:语句的执行过程详细如下:l(1)首先计算表达式首先计算表达式1,为循环控制变量赋初值;,为循环控制变量赋初值;l(2)然后计算表达式然后计算表达式
16、2,检查循环控制条件,若表,检查循环控制条件,若表达式达式2的值为的值为true,则执行一次循环体语句,若为,则执行一次循环体语句,若为false,终止循环;图,终止循环;图3-9 for语句的执行过程语句的执行过程l(3)执行完一次循环体语句后,计算表达式执行完一次循环体语句后,计算表达式3,对,对控制变量进行增量或减量操作,再重复第控制变量进行增量或减量操作,再重复第(2)步操步操作。作。3.2.3 for语句语句 lC#允许省略允许省略for语句中的三个表达式,但注意两个分号语句中的三个表达式,但注意两个分号不要省略,同时保证在程序中有起同样作用的语句。不要省略,同时保证在程序中有起同样作用的语句。省略后的一般形式如下:省略后的一般形式如下:表达式表达式1;for(;)if(表达式表达式2=false)break;语句语句;表达式表达式3;3.2.3 for语句语句 l【实例实例3-6】一个百万富翁遇到一个陌生人,陌生一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该项计划如下:我每天人找他谈一个换钱的计划,该项计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1