《结构控制流程》PPT课件

上传人:xt****7 文档编号:187389031 上传时间:2023-02-13 格式:PPT 页数:38 大小:145.50KB
收藏 版权申诉 举报 下载
《结构控制流程》PPT课件_第1页
第1页 / 共38页
《结构控制流程》PPT课件_第2页
第2页 / 共38页
《结构控制流程》PPT课件_第3页
第3页 / 共38页
资源描述:

《《结构控制流程》PPT课件》由会员分享,可在线阅读,更多相关《《结构控制流程》PPT课件(38页珍藏版)》请在装配图网上搜索。

1、第3章 结构控制流程 主要内容lC#中选择控制语句的类型l几种循环结构的定义、使用以及特点l几种跳转语句的使用流程控制语句分类l在C#语言中,流程控制语句主要分为以下几类:l选择结构控制语句:If 语句、Switch语句。l循环结构控制语句:Do循环语句、While循环语句、for循环语句、Foreach语句等。l跳转控制语句:Break语句、Continue语句、Goto语句、Return语句。3.1 选择结构控制语句 l主要包括If 语句以及Switch语句If语句lIf语句有3种基本形式:单条选择、如果/否则、多情形选择。1.单条选择If语句单条选择的If语句是最简单的If语句,基本语法

2、如下:if(boolean expression);该语句必须以关键字If开始,之后,括号内为布尔表达式。该表达式必须计算出一个True或者False值。若为True,则执行If后面的大括号中的语句,否则,就跳过这些大括号中的语句。If语句l2.如果/否则If语句如果/否则If语句的基本语法如下:if(boolean expression)语句体A;else 语句体B;这个语句和第一种很类似,根据If语句后面括号内的值,若为True,则执行语句体A,否则就执行语句体B。If语句l3.多情形选择If语句l多情形选择的If语句实际上是第2种形式的嵌套。在选择的时候常常是有多种情况,这些情况有不同的

3、指令。基本语法为:lif(boolean expression1)ll 语句体A;llelse if(boolean expression2)ll 语句体B;llelse if(boolean expression3)ll 语句体C;lllelsell 语句体N;l 程序执行时,首先判断If语句后面括号中的expression1,若值为True,则执行语句体A语句,若值为False,就跳向下一个语句,判断Else If语句后面的expression2,若为True,就执行语句体B语句,否则就继续向下,若到最后的Else语句之前还没有遇到语句为True的,就要执行Else语句后面大括号中的语句体

4、N了。Switch语句 lSwitch语句非常类似于If语句,因为它也是根据测试的值来有条件地执行代码。实际上,每一个由Switch语句组成的代码,都可以用If语句进行改写。但是,Switch语句也有它特殊的地方,它可以一次将测试变量与多个值进行比较,而不仅仅是测试一个条件。这种测试仅限于离散的值,而不是像“小于10”这样的子句。Switch语句 lSwitch语句的基本语法为:switch(switch_expression)case value1:statement1;break;case value2:statement2;break;case valueN:statementN;bre

5、ak;default 要记住两个主要规则。首先,switch_expression必须是(或者能够隐式地转换为)Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、String类型或者在这些类型上的一个枚举。其次,必须为每个Case语句添加一个Break语句。在执行Switch语句的过程中,先把Switch后面括号内的表达式 switch_expression依次与case后面的表达式进行比较,如果遇到匹配的,则就执行为该匹配提供的语句。如果没有匹配的,就执行Default部分中的代码。Break语句的作用是中断当前Switch语句的运行,而执行该

6、结构后面的语句。没有break这个关键字的时候,程序则会发生意想不到的错误。Switch语句的控制结构图Switch语句使用的一个小例子l例例:从键盘中一次输入2个操作数(整数)以及一个算术运算符(+,*,/之一),计算其结果。程序代码l新建一个控制台应用程序lusing System;lusing;lusing;lnamespace switchExamplell class Programl l static void Main(string args)l l int firstData;l int secondData;l string sopertaor;l double result

7、=0;l bool flag=false;l (请输入第1个数:);l firstData=();l (请输入运算符号,必须是加(+)、减(-)、乘(*)、除(/)中的一种);l sopertaor=Console.ReadLine().Trim();l (请输入第2个数:);l secondData=();程序代码ldol l switch(sopertaor)l l case+:result=firstData+secondData;l flag=true;l break;l case-:result=firstData-secondData;l flag=true;l break;l c

8、ase*:result=firstData*secondData;l flag=true;l break;l case/:l if(secondData=0)l l (被除数不能为0,请重新输入被除数:);l secondData=();l l elsel l result=firstData/secondData;l flag=true;l l l break;l default:(运算符输入错误!请重新输入运算符);l sopertaor=Console.ReadLine().Trim();l break;l l while(flag=false);l Console.WriteLine(

9、012的结果3,firstData,sopertaor,secondData,result);l ();l l l运行结果 3.2 循环结构 l循环结构可以实现一个程序模块的重复执行,它对于我们简化程序,更好地组织算法有着重要的意义。C#为我们提供了若干种循环语句,分别适用于不同的情形,下面依次介绍之。3.2.1 While循环lWhile循环语句可以有条件地将内嵌语句执行0遍或者若干遍,基本语法为:while(boolean expression)embeded-statement;lWhile循环语句执行时,先判断while后面括号内的语句的值,当为False时,不执行大括号内的嵌入程序段

10、,若为True 时,进入循环,执行循环内程序段一遍后,再次判断条件是否满足,若满足就一直执行下去,一直到不满足为止,跳出循环,继续后面的语句。循环 l程序中使用循环时,第一次不检查条件是否满足,直接进入循环,第二次以后才检查条件是否满足,条件为True时,才能进入循环。这时候,我们便需要使用Do循环。Do循环的基本语法格式为:do embeded-statement;while(boolean expression);循环 l在程序的设计过程中,若希望从某个值开始,每执行指定的程序段一次,便将该数值增加(减少)一个单位,如果结果始终比终值小(大),便继续执行该程序段,一直到不满足终值才离开该程

11、序段。这时,我们就可以使用For循环语句。For循环语句的基本语法为:for(initializer;condition;iterator)statement;其中Initializer,Condition,Iterator这3个项都是可选项。Initializer为循环控制变量作初始化,循环控制变量可以有一个或多个(用逗号隔开);Condition为循环控制条件,Iterator为按规律改变循环控制变量的值,也可以有一个或多个(用逗号隔开)。l例:例:使用For循环语句,写一个冒泡排序法(从小到大排列)。程序代码:lusing System;lusing;lusing;lnamespace

12、forExampleMPll class Programl l static void Main(string args)l l int myArray=new int 10,8,3,5,6,7,4,6,9;l /取长度最长的词组-冒泡法l for(int j=1;j ;j+)l l for(int i=0;i myArrayi+1,则 myArrayi 上浮一位l if(myArrayi myArrayi+1)l l int temp=myArrayi;l myArrayi=myArrayi+1;l myArrayi+1=temp;l l l (冒泡法排序后结果是:);for(int k=0

13、;k ;k+)Console.Write(myArrayk.ToString()+,);();语句 lForeach语句是在C#中新引入的,C和C+中没有这个语句,而Visual Basic的程序员应该对它不陌生。它表示收集一个集合中的各元素,并针对各个元素执行内嵌语句。Foreach语句的基本语法格式为:foreach(type identifier in expression)statement;关于Foreach语句的几点说明l首先,变量用来逐一存放数组元素内容,故该变量声明的类型要和数组的类型一致,且必须声明后才能使用;其次,数组内元素的个数决定循环内程序段重复执行的次数;最后,每次进

14、入循环,会依次将数组元素内容指定给变量,当所有元素都读完后,系统就会离开Foreach循环。Foreach语句的一个例子l例例使用Foreach循环语句输出一个数组的所有元素值。lusing System;lusing;lusing;lnamespace foreachExamplell class Programl l static void Main(string args)l l int index=1;l string myArray=new string6 Pirlo,Ronaldo,Beckham,Kaka,Owen,Henry;l foreach(string arr in my

15、Array)l l (第0个球员的名字是:1,index+,arr);l l ();l l l运行结果3.2.5 死循环 l可以通过编写错误代码或错误的设计,定义永远不终止的循环,即所谓的无限循环。下面的代码就是一个死循环的例子。while(true)/statement;l当然,死循环代码也是有用的,比如说,我们可以使用跳转语句(Break等)退出这样的循环。3.3 跳转语句 l跳转语句包括:Break语句、Continue语句、Goto语句和Return语句。3.3.1 Break与Continue语句 l可以使用Break语句终止当前的循环或者它所在的条件语句。然后,控制被传递到循环或条

16、件语句的嵌入语句后面的代码行。Break语句的语法极为简单,它没有括号和参数,只要将以下语句放到你希望跳出循环或条件语句的地方即可:break;Break语句例子l下面的代码是一个Break语句的简单例子:lint i=9;lwhile(i=0)l Console.WriteLine(0,i);l i-;l l else l l break;l l l运行结果:9、8、7、6、5、4、3、2、1、0 Continue 语句l若循环语句中有Continue关键字,则会使程序在某些情况下部分被执行,而另一部分不执行。在While循环语句中,在嵌入语句遇到Continue指令时,程序就会无条件地跳至

17、循环的顶端测试条件,待条件满足后再进入循环。而在Do循环语句中,在嵌入语句遇到Continue指令时,程序流程会无条件地跳至循环的底部测试条件,待条件满足后再进入循环。这时在Continue语句后的程序段将不被执行。Continue语句例子l例:输出1-10这10个数之间的奇数。l int i=1;l while(i=10)l l if(i%2=0)l l i+;l continue;l l ()+”,”);l i+;l l 本程序的输出结果为 1,3,5,7,9,3.3.2 Goto语句 lGoto语句可以跳出循环,到达已经标识好的位置上。一个goto语句使用的小例子l例例:使用Goto语句

18、参与数据的查找。程序代码:lusing System;lusing;lusing;lnamespace gotoExamplell class Programl l static void Main(string args)l l int x=200,y=4;l int count=0;l string,array=new stringx,y;l /Initialize the array:l for(int i=0;i x;i+)l for(int j=0;j y;j+)l arrayi,j=(+count).ToString();l /Read input:l Console.Write(

19、Enter the number to search for:);l /Input a string:l string myNumber=();l /Search:l for(int i=0;i x;i+)l l for(int j=0;j y;j+)l l if(arrayi,j.Equals(myNumber)l l goto Found;l l l 程序代码 Console.WriteLine(The number 0 was not found.,myNumber);goto Finish;Found:Console.WriteLine(The number 0 is found.,m

20、yNumber);Finish:Console.WriteLine(End of search.);();运行结果:3.3.3 Return语句lReturn语句是函数级的,遇到Return该方法必定返回,即终止不再执行它后面的代码。Return语句的一个例子l例例 一个关于return跳转语句的简单例子。l程序代码:lusing System;lusing;lusing;lnamespace returnExamplell class Programl l static void Main(string args)l l Console.WriteLine(Add(1,2);l return

21、;l Console.WriteLine(cant be reached);l l static int Add(int a,int b)l l return a+b;l l l运行结果分析l上述的代码运行出错,错误描述为:“检测到无法访问的代码”,并且在Console.WriteLine(cant be reached);这句代码中提示,这说明Return语句已经阻止了后面语句的运行。小结 l本章绝大多数内容都在讲解如何在C#中使用各种选择和循环语句。读者们以前在其他的程序语言里都接触这个东西,但是一定要留意它们在C#语言中与别的语言中的不同点。使用if语句时,别忘记了一定要用布尔表达式,尤为重要的是,要确保条件语句的短路不阻止重要代码的运行,switch 语句支持字符串标签。循环语句部分,我们可以在各种循环语句之间转化,但是每种循环语句在执行某一定特定任务时,效率不同,要选好合适的循环语句。几种跳转语句的使用可以给我们的程序带来方便,但是在使用goto语句时,要谨慎。谢谢!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!