程序设计全套3程序流程控制

上传人:gp****x 文档编号:242938222 上传时间:2024-09-12 格式:PPT 页数:42 大小:2.27MB
返回 下载 相关 举报
程序设计全套3程序流程控制_第1页
第1页 / 共42页
程序设计全套3程序流程控制_第2页
第2页 / 共42页
程序设计全套3程序流程控制_第3页
第3页 / 共42页
点击查看更多>>
资源描述
,*,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,LOGO,Visual C#.NET,程序设计实用教程,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 程序流程控制,1,内容简介,虽然,C#,是完全的面向对象语言,但在局部的语句块内,仍然要使用结构化程序设计的方法,用控制结构来控制程序的执行流程。结构化程序设计有三种基本控制结构,分别是:,顺序结构,、,选择结构,和,循环结构,。本章将对这三种基本结构的概念及相应的控制语句进行详细介绍。,2,目录,3.1,顺序结构,3.2,选择结构,3.3,循环结构,3,3.1,顺序结构,顺序结构,的执行特征为:按照语句出现的先后顺序,依次执行。,处理实际问题时,往往需要用户输入数据,然后进行相应的处理,最后由程序输出结果。,控制台应用程序的输入与输出,Windows,应用程序的输入与输出,4,3.1.1,赋值语句,赋值语句是程序设计中最基本的语句,由于,C#,的赋值表达式有多种形式,因此赋值语句也表现出多样性。,常用的赋值语句有,单赋值语句、复合赋值语句、连续赋值语句,。不管是哪种赋值语句,基本格式都是以下两种:,【,格式,1】,变量名,=,表达式,【,功能,】,将表达式的值赋值给变量。,【,格式,2】,对象名,.,属性名,=,表达式,【,功能,】,将表达式的值赋值给对象的属性。,5,3.1.1,赋值语句,单赋值语句,2.,复合赋值语句,3.,连续赋值语句,int i = 3;,int j = i-1;,label1.Text = ,姓名,;,int x = 55; x -= 50;,label1.Text += ,:,;,string s1, s2, s3;,s1 = s2 = s3 = ,连续赋值,;,textBox1.Text = textBox2.Text = ;,6,3.1.2,输入与输出,输入与输出是应用程序进行数据处理过程中的基本功能。按照应用程序的类型,大致分为,控制台、,Windows,、,Web,三种应用程序的输入与输出。,1,控制台应用程序的输入与输出,2 Windows,应用程序的输入与输出,7,1,控制台应用程序的输入与输出,控制台输入输出,也称为,标准,输入输出,使用的是标准输入输出设备,即,键盘和显示器,。控制台应用程序的输入与输出,主要通过,Console,类的静态方法,实现。,1.,输入方法,控制台应用程序的数据输入,可以通过,Console,类的静态方法,Read,与,ReadLine,实现。,2.,输出方法,控制台应用程序的数据输出,可以通过,Console,类的静态方法,Write,与,WriteLine,实现,两个方法都没有返回值。,8,1,控制台应用程序的输入与输出,1.,输入方法,Console,类,的静态方法,Read,与,ReadLine,(1) Read,方法,【,格式,】,Console.Read(),【,说明,】 Read,方法只能接受一个字符,,返回值是,int,类型,;如果输入的字符不是数字,将返回该字符对应的,ASCII,编码。,【,示例,】 int i = Console.Read();,char c = (char)Console.Read();,9,1,控制台应用程序的输入与输出,1.,输入方法,Console,类,的静态方法,Read,与,ReadLine,(2) ReadLine,方法,【,格式,】,Console.ReadLine(),【,说明,】 ReadLine,方法接受一行字符(即一个字符串,回车代表输入的结束),,返回值是,string,类型,。,【,示例,】 string s = Console.ReadLine();,10,2.,输出方法,Console,类,的静态方法,Write,与,WriteLine,(1) Write,方法,【,格式,1】,Console.Write(X),【,功能,】,将参数,X,指定的数据写入标准输出流(一般指显示器)。,【,说明,】,参数,X,是任意类型的数据。,【,示例,】 Console.Write(,请输入一个整数:,);,int j = int.Parse(Console.ReadLine();,Console.Write(,输入的整数为:,+j);,1,控制台应用程序的输入与输出,11,2.,输出方法,Console,类,的静态方法,Write,与,WriteLine,(1) Write,方法,【,格式,2】,Console.Write(,格式字符串,表达式列表,),【,功能,】,按照格式字符串的约定,输出提示字符和表达式的值。,【,说明,】,格式字符串是由双引号括起来的字符串,里面可以包含, ,括起来的数字,数字从,0,开始,依次对应表达式列表中的表达式。,【,示例,】 int i = 5; string s = five;,Console.Write(i,=0,,,s=1, i, s);,/,输出结果为:,i=5,,,s=five,1,控制台应用程序的输入与输出,12,2.,输出方法,Console,类,的静态方法,Write,与,WriteLine,(2) WriteLine,方法,【,格式,1】,Console.WriteLine(X),【,功能,】,将指定的,X,写入标准输出流,并,以一个换行符结尾,。,【,格式,2】,Console.WriteLine(,格式字符串,表达式列表,),【,功能,】,按照格式字符串的约定,输出提示字符和表达式的值,并以一个换行符结尾。,【,说明,】 WriteLine,方法的功能与,Write,方法基本相同,唯一的区别是,WriteLine,方法调用后要换行。,【,例,】,编写一个控制台应用程序,实现分别输入姓名和年龄后再一起输出,“,的年龄是,岁,”,的功能。,1,控制台应用程序的输入与输出,13,Windows,应用程序的输入与输出,可以通过多种控件实现,如之前介绍过的,TextBox,、,Label,、,LinkLabel,以及下面要介绍的,MessageBox,(消息框),等。其中,使用频率最高的是,TextBox,和,Label,。,从操作程序的用户的角度看,,TextBox,和,Label,控件的主要区别在于:,Label,控件是一个只能显示数据的控件,而,TextBox,控件既可以让用户在其中输入数据,也可以显示输出数据。,【,例,】,编写一个,Windows,应用程序,实现分别输入姓名和年龄后再一起输出,“,的年龄是,岁,”,的功能。,3.2.2 Windows,应用程序的输入与输出,14,消息框,消息框是,一个预定义对话框,,用于向用户,显示,与应用程序相关的,信息。,只有在用户响应该消息框后,程序才能继续运行下去。,显示消息框,要显示消息框,必须调用,MessageBox,类的静态方法,Show,。,【,格式,】,MessageBox.Show(,参数列表,);,消息框可以显示,标题、消息、按钮和图标,四部分内容,也可以只显示其中的一项或几项。,15,1.,显示消息框,下面给出几种常用的,Show,方法。,消息框,16,2.,消息框的按钮,消息框中,除了默认的,“,确定,”,按钮,还可以放置其他按钮,这些按钮可以收集用户对消息框中问题的响应。一个消息框中,最多可显示,3,个按钮,,可以根据程序要求从,MessageBoxButtons,枚举,的成员中选择。,消息框,17,3.,消息框的图标,默认情况下,消息框不显示图标,,MessageBoxIcon,枚举,用于指定消息框中显示什么图标。,消息框,18,4.,消息框的返回值,单击消息框中的某一按钮时,,Show,方法将返回一个,DialogResult,枚举,值来指示对话框的返回值。,【,例,】,实现通过消息框输出,“,的年龄是,岁,”,的功能。,消息框,19,3.2,选择结构,选择结构也称为分支结构,其特点是:根据给定的条件是否成立,决定从各个可能的分支中执行某一分支的相应操作。,选择结构,一般分为,单分支、双分支、多分支,三种。,if,语句,用于判断特定的条件能否满足,一般用于单分支和双分支选择,也可以用于多分支选择。,switch,语句常用于多分支选择。,20,3.2.1 if,语句,单分支的,if,语句是最简单的,它根据条件表达式的值决定是否要执行其后的语句块,格式如下:,【,格式,】,if,(,条件表达式,),语句块, ;,【,说明,】,条件表达式可以是关系表达式、逻辑表达式或布尔常量值(,true,和,false,)。,“,语句块,”,可以是单语句,也可以是多语句。如果是单语句,大括号可以省略;如果是多语句,分号可以省略。,【,例,】,输入一个整数,求绝对值。程序分析:如果是负数,取反;否则,绝对值是这个数本身。,21,双分支的,if,语句,是最常用的,它根据条件表达式的值进行判断,选择其中一个分支执行,格式如下:,【,格式,】,if,(,条件表达式,),语句块,1,else,语句块,2,;,【,例,】,根据输入的学生成绩,Score,的值,显示其是否及格。,3.2.1 if,语句,22,if,语句也可以用于多分支的选择结构,用来对三种或三种以上的情况进行判断。,if,else if,else,语句实际上就是,if,语句的嵌套,一般格式如下:,【,格式,】,if,(,条件表达式,1),语句块,1 ;,else if,(,条件表达式,2),语句块,2 ;,/,其他分支,else if,(,条件表达式,n),语句块,n ;,else,语句块,n+1 ;,3.2.1 if,语句,23,3.2.2 switch,语句,使用嵌套的,if,语句虽然可以实现多分支的选择结构,但,if,语句每次判断只能有两个分支,当判断的条件较多时,程序的可读性将大大降低。,switch,语句,(也称为,开关语句,),专门用于多分支的选择结构,,其语法更简单,能处理复杂的条件判断。,switch,语句有一个控制表达式,其分支语句根据控制表达式的值的不同,执行不同的语句块。,switch,语句的格式如下:,24,【,格式,】,switch,(,控制表达式,),case,常量表达式,1,:,语句块,1;,break;,case,常量表达式,2:,语句块,2; break;,/,其他分支,case,常量表达式,n:,语句块,n; break;,default:,语句块,n+1;,break;,3.2.2 switch,语句,25,【,说明,】,“,控制表达式,”,可以是,sbyte,、,byte,、,short,、,ushort,、,int,、,uint,、,long,、,ulong,、,bool,、,char,、,string,或枚举类型,使用较多的是,int,和,string,类型。,switch,语句可以包括任意数目的,case,块,但是,任何两个,case,语句都不能具有相同的值,。,“,语句块,”,可以是单语句,也可以是多语句。,break,语句用于中断选择分支的语句运行,,此处用于跳出,switch,语句。在,switch,语句中,也可使用,goto,语句实现语句转移,但应尽量避免使用这种方法。,3.2.2 switch,语句,26,3.2.2 switch,语句,【,说明,】, C#,不支持从一个,case,标签显式贯穿到另一个,case,标签,因此,在每一个,case,块(包括,default,块)的后面都必须有一个跳转语句(如,break,),;但有一个例外,这个例外是当,case,块中没有代码时,空,case,标签可以贯穿到另一个,case,标签,这种情况下多个,case,语句可以使用同一个语句块进行处理。,default,标签用来处理不匹配,case,语句的值,,定义,default,标签可以增强处理相应的异常。,【,例,】,改写输入的学生成绩,Score,的值,显示其是否及格。,27,3.3,循环语句,C#,提供了多种形式的循环语句,包括,for,语句、,foreach,语句、,while,语句和,do,while,语句。,3.3.1 for,语句,循环次数可知,【,格式,】,for(,表达式,1;,表达式,2;,表达式,3),循环体,;,1,2,3,4,4,5,循环体以外的语句,6,28,3.3.1 for,语句,1+2+3+100=,?,int i, sum = 0;,for (i = 1; i = 100; i+),sum += i;,int i=1, sum = 0;,sum += i;,break;,if ( ),i=100,i=i+1;,29,3.3.1 for,语句,【,例,】,编写一个,Windows,应用程序,计算,a+aa+aaa+aaaa+. .+aa.a,(,n,个),的值,其中,a,和,n,为,1,9,之间的整数。,int a, n, num,sum;,num = sum = 0;,a = int.Parse(txtA.Text);,n = int.Parse(txtN.Text);,for (int i = 1; i = n; i+),num = num * 10 + a;,sum += num;,txtSum.Text = sum.ToString();,30,3.3.2 while,语句,while,语句一般用于,循环次数未知,的循环结构,也可以用于循环次数可知的循环结构。,【,格式,】,while(,条件表达式,),循环体,;,注意:,1.,循环体可能执行,0,次;,2.while(true),永真循环,要使用,break,语句。,31,3.3.2 while,语句,【,例,】,编写一个,Windows,应用程序,将所输入整数的各个位上的数字按相反顺序输出。,86397,79368,a,a!=0,b = a%10 ;,/ 7,str=str+b.ToString();,a=a/10;,/8639,b = a%10 ;,/ 9,str=str+b.ToString();,a=a/10;,/863,32,3.3.3 dowhile,语句,do,while,语句,与,while,语句非常相似,而,do,while,语句的测试条件在每一次循环结束时进行判断,因为先执行后判断,所以,至少执行一次,。,【,格式,】,do,循环体, while(,条件表达式,);,注意:,最后的分号不能省略,否则会提示错误。,33,continue,与,break,int n=0; m=0;,for(i = 1; i=10; i+),if (i%2=0),continue;,n+;,for(i = 1; i=10; i+),if (i%2=0),break;,m+;,n=5,m=1,34,3.3.4 foreach,语句,foreach,语句是专用于对,数组、集合等,数据结构中的每一个元素进行循环操作的语句,通过它可以列举数组、集合中的每个元素,并且通过执行循环可以对每一个元素进行需要的操作。,foreach,语句一般格式如下:,【,格式,】,foreach(,类型名 变量名,in,数组或集合名称,),循环体,;,【,功能,】,对数组或集合中的每一个元素(用,“,变量名,”,表示),执行循环体中的语句。,35,3.3.4 foreach,语句,【,说明,】,“,变量名,”,是一个循环变量,在循环中,该变量依次获取数组或集合中各元素的值,所以,“,类型名,”,必须与数组或集合的类型一致,。, 循环体可以是单语句,也可以是多语句。如果是单语句,大括号可以省略;如果是多语句,分号可以省略。, 可以在循环体中的任意位置放置,continue,或,break,语句来结束本次循环或退出循环,,break,和,continue,语句通常结合,if,语句使用。,【,例,】,利用,foreach,语句计算数组中的奇数和偶数的个数。,36,3.3.5,循环的嵌套,如果一个循环(称为,“,外循环,”,)语句的循环体内包含另一个或多个循环(称为,“,内循环,”,)语句,称为循环的嵌套。内循环中还可以包含循环,形成多层循环。,通常把循环体内不含有循环语句的循环叫做,单层循环,,而把循环体内含有循环语句的循环称为,多重循环,。,在程序设计过程中,常常需要使用循环的嵌套来处理重复操作。而在处理重复操作时,往往又需要根据某一条件改变循环的正常流程。各种循环语句可以互相嵌套,嵌套的层数理论上无限制,但多重循环可能会导致程序的执行速度有所降低。,【,例,】,编写一个,Windows,应用程序,输出九九乘法表。,37,3.3.6,跳转语句,前面介绍过,可以在循环体中放置,break,语句来强制终止循环,还可以在循环体中放置,continue,语句来结束本次循环。,break,语句和,continue,语句都是跳转语句,使用跳转语句,可以在循环的中途直接控制流程转移。,C#,中提供了四种跳转语句:,goto,、,break,、,continue,和,return,语句。,38,3.3.6,跳转语句,1. goto,语句,goto,(转向)语句可以将程序控制直接转移给由,“,行标签,”,标记的语句,。但,goto,语句只能跳转到,它所在方法内的行,,而且该行必须有,goto,可以引用的行标签。,goto,语句的一般用于将控制传递给,switch,语句中特定的,case,标签或的,default,标签,有时也用于跳出深嵌套循环。,但由于,goto,语句改变了程序的正常流程,使代码的阅读和维护变得更加困难,所以尽量不要使用。而且,用,goto,语句实现的功能一般都可以利用控制结构实现,因此,goto,语句很少使用。,39,3.3.6,跳转语句,2. break,语句,break,(终止)语句用于终止最近的循环语句或它所在的,switch,语句,将程序控制传递给它所终止语句的后续语句。,3. continue,语句,continue,(继续)语句只能用于循环结构,可以将程序控制传递给循环语句的下一次循环。也就是说,,continue,语句的作用是结束本次循环,跳过,continue,之后的其他循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。,40,3.3.6,跳转语句,4. return,语句,return,(返回)语句,用于终止它所在的方法的执行,并将控制返回给调用方法,。,return,语句通常用于返回方法的调用值并退出类的方法。如果方法有返回类型,应使用,“,return,表达式,;,”,返回该类型的值;如果方法为,void,类型,应使用,“,return;,”,来退出该方法;,如果方法为,void,类型且,“,return;,”,是方法的最后一条语句,则可以省略,“,return;,”,。,41,本章小结,本章介绍了,C#,的,if,语句、,switch,语句、,while,语句、,do-while,语句、,for,语句以及,foreach,语句等流程控制语句。其中,for,语句是所有循环语句中使用最频繁的语句。对于,do-while,循环语句来说,无论是否满足条件表达式,它的循环体都至少执行一次;但对于,while,循环来说,只有满足条件表达式,才能执行循环体。,foreach,语句是,C#,特有的循环语句,主要用于遍历数组和集合中的元素。,42,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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