C#程序设计教程第3章.ppt_第1页
C#程序设计教程第3章.ppt_第2页
C#程序设计教程第3章.ppt_第3页
C#程序设计教程第3章.ppt_第4页
C#程序设计教程第3章.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2019/4/20,1,C#程序设计经典教程,第三章 C#程序的流程控制,1. 总体要求 理解分支的概念,掌握if语句和switch语句的使用方法 理解循环的概念,掌握while、do/while、for、foreach语句的使用方法 理解分支嵌套、循环嵌套的概念,了解相关应用 了解goto语句,掌握continue和break语句的使用方法 2. 相关知识点 if语句和switch语句 while、do/while、for、foreach语句 3. 学习重点 分支嵌套和循环嵌套,2019/4/20,3,第三章 C#程序的流程控制,主要内容 3.1 C#程序的分支语句 3.2 C#程序的循环语句 3.3 跳转语句,2019/4/20,4,3.1 C#程序的分支语句,3.1.1 if 语句 3.1.2 switch语句,返回,2019/4/20,5,3.1.1 if语句,if语句也称为条件语句、选择语句,用于实现程序的分支结构,根据条件是否成立来控制执行不同的程序段,完成相应的功能。 if语句的一般形式如下: if (表达式) 语句块1 else 语句块2 ,if语句的逻辑意义为:如果表达式的值为true,则选择执行“语句块1”,否则选择执行“语句块2”,如图3-1所示。 “ifelse”的结构通常称为双分支结构。实际编程时,可省略else子句,构成单分支结构。当“语句块1”或“语句块2”只有一条语句时,可以省略花括号,还可以在同一行书写。 例如,设x为int型变量, if(x%2=0) Console.Write(“x为偶数“); 就是典型的单分支结构。,3.1.1 if语句,双分支结构的替代方案 在C#中,如果双分支结构比较简单,可使用问号?运算符来替代if语句。问号运算符的一般格式如下: (表达式1)?表达式2:表达式3 其逻辑含义为:如果表达式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为偶数“; 使用问号运算符来构造双分支结构,要比if语句更加简练,3.1.1 if语句,【实例3-1】创建一个Windows应用程序,先输入年龄值,再判断是否大于18,最后显示判断结果,运行效果如图所示。,3.1.1 if语句,3.1.1 if语句,在Windows窗体中添加2个Label、1个TextBox和1个Button控件。各控件的主要属性设置见表3-1。,3.1.2 switch语句,当判断的条件较多,不止一两个分支时,可使用switch语句。switch语句专用于实现多分支结构,其语法更简洁,能处理复杂的条件判断。,switch语句的一般格式如下: switch(表达式) case 常量1: 语句块1; break; case 常量2: 语句块2; break; case 常量n: 语句块n; break; default: 语句块n+1; ,3.1.2 switch语句,switch语句的执行过程为: 首先计算switch语句中表达式的值,再依次与每一个case后的常量比较,当表达式的值与某个常量相等时,则执行该case后的语句块,在执行break语句之后跳出switch结构,继续执行switch之后的语句,如图3-3所示。如果所有常量都不等于switch中表达式的值,则执行default之后的语句块。如果没有 default子句,则执行switch语句后面的语句。,3.1.2 switch语句,【实例3-2】创建一个Windows应用程序,使用switch语句来计算不同服装的应付款,运行效果如图所示,3.1.2 switch语句,3.1.3 分支语句的嵌套,无论是if语句,还是switch语句,其中的语句可以任何语句,包括if语句或switch。如果if语句或switch语句包含了if或switch语句,则称之为嵌套的分支语句。其中,嵌套的if语句也可以用来构建多分支结构的程序,以替代switch语句。,3.2 C#程序的循环语句,3.2.1 While语句 3.2.2 do/while语句 3.2.3 for语句 3.2.4 foreach语句 3.2.5 循环语句的嵌套,返回,3.2.1 while语句,while语句表达的逻辑含义是:当逻辑条件成立时,重复执行某些语句,直到条件不成立时终止,从而不再循环。因此在循环次数不固定时while语句相当有用。while语句的一般形式为: while(表达式) 语句块; 其中,表达式必须是布尔型表达式,用来检测循环条件是否成立,语句块为循环体,while语句执行过程如下:首先计算表达式,当表达式的值为true时,执行一次循环体中的语句,重复上述操作到表达式的值为false时退出循环。如果表达式的值在开始时就为false,那么不执行循环体语句直接退出循环。因此,while语句的特点是:先判断表达式,后执行语句。,3.2.1 while语句,【实例3-4】求,即1+2+3+100,3.2.1 while语句,do-while语句的特点是先执行循环体,然后判断循环条件是否成立,其一般形式为: do 语句块; while (表达式); 其中,语句块为循环体,表达式必须是布尔型表达式,用来检测循环条件是否成立。,3.2.2 do/while语句,do-while语句执行过程如下:首先执行一次循环体,然后再计算表达式,如果表达式的值为true,则再执行一次循环体,重复上述操作,直到表达式的值为false时退出循环。如果条件在开始时就为false,那么执行一次循环体语句后退出循环。 可见,while语句与do/while语句的区别在于:前者循环体执行的次数可能是0次,而后循环体执行的次数至少是1次。,3.2.2 do/while语句,【实例3-5】创建一个Windows应用程序,统计从键盘输入一行字符中英文字母的个数。,3.2.2 do/while语句,3.2.3 for语句,for语句与while语句、do/while语句一样,可以循环重复执行一个语句或语句块,直到指定的表达式计算为 false 值。for语句的一般形式为: for(表达式1; 表达式2; 表达式3) 语句块; 其中,表达式1为赋值表达式,通常用于初始化循环控制变量;表达式2为布尔型的表达式,用来检测循环条件是否成立;表达式3赋值表达式,用来更新循环控制变量的值,以保证循环能正常终止,for语句的执行过程详细如下: (1) 首先计算表达式1,为循环控制变量赋初值; (2) 然后计算表达式2,检查循环控制条件,若表达式2的值为true,则执行一次循环体语句,若为false,终止循环;图3-9 for语句的执行过程 (3) 执行完一次循环体语句后,计算表达式3,对控制变量进行增量或减量操作,再重复第(2)步操作。,3.2.3 for语句,C#允许省略for语句中的三个表达式,但注意两个分号不要省略,同时保证在程序中有起同样作用的语句。省略后的一般形式如下: 表达式1; for(;) if(表达式2=false) break; 语句; 表达式3; ,3.2.3 for语句,【实例3-6】一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该项计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱。,3.2.3 for语句,3.2.3 for语句,3.2.4 foreach语句,C# 的 foreach 语句提供了一种简单明了的方法来循环访问数组或集合的元素,又称迭代器。foreach语句的一般形式如下: foreach(类型 循环变量 in 表达式) 语句块; 其中,表达式一般是一个数组名或集合名,循环变量的类型必须与表达式的数据类型一致。,foreach语言的执行过程如下: (1)自动指向数组或集合中的第一个元素; (2)判断该元素是否存在,如果不存在结束循环 (3)把该元素的值赋给循环变量; (4)执行循环体语句块; (5)自动指向下一个元素,之后从第(2)开始重复执行。,3.2.4 foreach语句,【实例3-7】创建一个Windows程序,实现如下功能: (1)输入联系人姓名和电话号码并保存到结构体数组中; (2)使用foreach语句迭代查询指定联系人的电话号码。 该程序运行效果如图3-11所示。,3.2.4 foreach语句,3.2.5 循环语句的嵌套,在一个循环体内又包含另一个循环结构,称为循环嵌套。内层循环体中如果又包含了新循环结构,则称之为多重循环嵌套。C#没有严格规定多重循环的层数,但为了便于理解程序逻辑,建议循环嵌套不要超过3层。,C#语言允许各种循环结构任意组合嵌套,常见的组合嵌套如下,3.2.5 循环语句的嵌套,(1) for(;) while() ,(2) do for(;) while(),(3) while() for(;) ,3.2.5 循环语句的嵌套,(4) for() do while() ,(6) while() do while() ,(5) do while() while(),注意,循环嵌套时,要保证内层循环必须完全包含于外层循环之内,不允许循环结构交叉,因此一定要注意各循环语句的花括号的配对关系。,【实例3-8】创建一个Windows应用程序,打印如图3-12所示的九九乘法表。,3.2.5 循环语句的嵌套,3.3 跳转语句,3.3.1 goto语句 3.3.2 break语句 3.3.3 continue语句,返回,3.3.1 goto语句,goto语句允许在程序内部进行随意跳转。它通常与if语句配合使用。在使用时,先在程序中设置跳转标记,之后用if语句判断是否需要跳转,如果需要,则用goto语句跳到标记所在的代码处向下继续执行。 跳转标记允许位于if语句之前,也允许位于语句之后。当跳转标记位于if语句之前时,实际上表示了反复执行跳转标记和if语句之前的代码的作用,因此使用goto语句可构造循环结构。,注意,因为goto语句既可向后跳转,也可向前跳转,大量使用goto语句很容易让人混淆程序运行的顺序,因此大部分的程序设计语言不建议采用goto语句来编写程序。,3.3.1 goto语句,break语句既可用于switch语句,也可用于循环语句。break语句用于switch语句时,表示跳转出switch语句;用于循环语句时表示提前终止循环。在循环结构中,break语句可与if语句配合使用,通常先用if语句判断条件是否成立,如果成立,则用break来终止循环,跳转出循环结构。,3.3.2 break语句,【实例3-9】创建一下Windows程序,先输入若干个姓名并保存到字符串数组中,再检索指定姓名。,3.3.2 break语句,3.3.3 continue语句,continue语句只能用于循环结构,与break语句不同的是,continue语句不是用来终止并跳出循环结构的,而是忽略continue后面的语句,直接进入本循环结构的下一次循环操作。在while和do while循环结构中,continue立即转去检测循

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论