程序设计全套3程序流程控制_第1页
程序设计全套3程序流程控制_第2页
程序设计全套3程序流程控制_第3页
程序设计全套3程序流程控制_第4页
程序设计全套3程序流程控制_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、内容简介 虽然C# 是完全的面向对象语言,但在局部的语句块内,仍然要使用结构化程序设计的方法,用控制结构来控制程序的执行流程。结构化程序设计有三种基本控制结构,分别是:顺序结构、选择结构和循环结构。本章将对这三种基本结构的概念及相应的控制语句进行详细介绍。目录3.1 顺序结构顺序结构 3.2 选择结构选择结构3.3 循环结构循环结构3.1 顺序结构 顺序结构的执行特征为:按照语句出现的先后顺序,依次执行。 处理实际问题时,往往需要用户输入数据,然后进行相应的处理,最后由程序输出结果。控制台应用程序的输入与输出Windows应用程序的输入与输出3.1.1 赋值语句 赋值语句是程序设计中最基本的语

2、句,由于C#的赋值表达式有多种形式,因此赋值语句也表现出多样性。 常用的赋值语句有单赋值语句、复合赋值语句、连续赋值语句。不管是哪种赋值语句,基本格式都是以下两种:【格式1】变量名 = 表达式【功能】将表达式的值赋值给变量。【格式2】对象名.属性名 = 表达式【功能】将表达式的值赋值给对象的属性。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 =

3、 s2 = s3 = 连续赋值;textBox1.Text = textBox2.Text = ;3.1.2 输入与输出 输入与输出是应用程序进行数据处理过程中的基本功能。按照应用程序的类型,大致分为控制台、Windows、Web三种应用程序的输入与输出。1 控制台应用程序的输入与输出控制台应用程序的输入与输出2 Windows应用程序的输入与输出应用程序的输入与输出1 控制台应用程序的输入与输出 控制台输入输出,也称为标准输入输出,使用的是标准输入输出设备,即键盘和显示器。控制台应用程序的输入与输出,主要通过Console类的静态方法实现。1. 输入方法输入方法 控制台应用程序的数据输入,可

4、以通过Console类的静态方法Read与ReadLine实现。2. 输出方法输出方法 控制台应用程序的数据输出,可以通过Console类的静态方法Write与WriteLine实现,两个方法都没有返回值。 1 控制台应用程序的输入与输出1. 输入方法输入方法 Console类的静态方法Read与ReadLine(1) Read方法方法【格式】 Console.Read()【说明】 Read方法只能接受一个字符,返回值是int类型;如果输入的字符不是数字,将返回该字符对应的ASCII编码。【示例】 int i = Console.Read(); char c = (char)Console.R

5、ead();1 控制台应用程序的输入与输出1. 输入方法输入方法 Console类的静态方法Read与ReadLine(2) ReadLine方法方法【格式】 Console.ReadLine()【说明】 ReadLine方法接受一行字符(即一个字符串,回车代表输入的结束),返回值是string类型。【示例】 string s = Console.ReadLine(); 2. 输出方法输出方法 Console类的静态方法Write与WriteLine(1) Write方法方法【格式1】 Console.Write(X) 【功能】 将参数X指定的数据写入标准输出流(一般指显示器)。【说明】 参数

6、X是任意类型的数据。【示例】 Console.Write(请输入一个整数:); int j = int.Parse(Console.ReadLine(); Console.Write(输入的整数为:+j);1 控制台应用程序的输入与输出2. 输出方法输出方法 Console类的静态方法Write与WriteLine(1) Write方法方法【格式2】 Console.Write(格式字符串,表达式列表)【功能】 按照格式字符串的约定,输出提示字符和表达式的值。【说明】 格式字符串是由双引号括起来的字符串,里面可以包含 括起来的数字,数字从0开始,依次对应表达式列表中的表达式。【示例】 int

7、i = 5; string s = five; Console.Write(i=0,s=1, i, s); /输出结果为:i=5,s=five1 控制台应用程序的输入与输出2. 输出方法输出方法 Console类的静态方法Write与WriteLine(2) WriteLine方法方法【格式1】 Console.WriteLine(X)【功能】 将指定的X写入标准输出流,并以一个换行符结尾。【格式2】 Console.WriteLine(格式字符串,表达式列表)【功能】 按照格式字符串的约定,输出提示字符和表达式的值,并以一个换行符结尾。【说明】 WriteLine方法的功能与Write方法基

8、本相同,唯一的区别是WriteLine方法调用后要换行。【例例】 编写一个控制台应用程序,实现分别输入姓名和年龄后编写一个控制台应用程序,实现分别输入姓名和年龄后再一起输出再一起输出“的年龄是的年龄是岁岁”的功能。的功能。1 控制台应用程序的输入与输出 Windows应用程序的输入与输出,可以通过多种控件实现,如之前介绍过的TextBox、Label、LinkLabel以及下面要介绍的MessageBox(消息框)等。其中,使用频率最高的是TextBox和Label。 从操作程序的用户的角度看,TextBox和Label控件的主要区别在于:Label控件是一个只能显示数据的控件,而TextBo

9、x控件既可以让用户在其中输入数据,也可以显示输出数据。【例例】 编写一个编写一个Windows应用程序,实现分别输入姓名应用程序,实现分别输入姓名和年龄后再一起输出和年龄后再一起输出“的年龄是的年龄是岁岁”的功能。的功能。3.2.2 Windows应用程序的输入与输出 消息框 消息框是一个预定义对话框,用于向用户显示与应用程序相关的信息。只有在用户响应该消息框后,程序才能继续运行下去。显示消息框显示消息框要显示消息框,必须调用MessageBox类的静态方法Show。 【格式】 MessageBox.Show(参数列表); 消息框可以显示标题、消息、按钮和图标四部分内容,也可以只显示其中的一项

10、或几项。1. 显示消息框显示消息框 下面给出几种常用的Show方法。 消息框 2. 消息框的按钮消息框的按钮 消息框中,除了默认的“确定”按钮,还可以放置其他按钮,这些按钮可以收集用户对消息框中问题的响应。一个消息框中最多可显示3个按钮,可以根据程序要求从MessageBoxButtons枚举的成员中选择。 消息框 3. 消息框的图标消息框的图标 默认情况下,消息框不显示图标,MessageBoxIcon枚举用于指定消息框中显示什么图标。 消息框 4. 消息框的返回值消息框的返回值 单击消息框中的某一按钮时,Show方法将返回一个DialogResult枚举值来指示对话框的返回值。【例例】 实

11、现通过消息框输出实现通过消息框输出“的年龄是的年龄是岁岁”的功能。的功能。 消息框 3.2 选择结构 选择结构也称为分支结构,其特点是:根据给定的条件是否成立,决定从各个可能的分支中执行某一分支的相应操作。 选择结构一般分为单分支、双分支、多分支三种。if语句,用于判断特定的条件能否满足,一般用于单分支和双分支选择,也可以用于多分支选择。switch语句常用于多分支选择。3.2.1 if语句 单分支的if语句是最简单的,它根据条件表达式的值决定是否要执行其后的语句块,格式如下:【格式】if (条件表达式) 语句块 ;【说明】 条件表达式可以是关系表达式、逻辑表达式或布尔常量值(true和fal

12、se)。 “语句块”可以是单语句,也可以是多语句。如果是单语句,大括号可以省略;如果是多语句,分号可以省略。【例例】输入一个整数,求绝对值。程序分析:如果是输入一个整数,求绝对值。程序分析:如果是负数,取反;否则,绝对值是这个数本身。负数,取反;否则,绝对值是这个数本身。 双分支的if语句是最常用的,它根据条件表达式的值进行判断,选择其中一个分支执行,格式如下: 【格式】if (条件表达式) 语句块1 else 语句块2 ;【例例】根据输入的学生成绩根据输入的学生成绩Score的值,显示其是否的值,显示其是否及格。及格。3.2.1 if语句 if语句也可以用于多分支的选择结构,用来对三种或三种

13、以上的情况进行判断。ifelse ifelse语句实际上就是if语句的嵌套,一般格式如下:【格式】if (条件表达式1) 语句块1 ; else if (条件表达式2) 语句块2 ; /其他分支 else if (条件表达式n) 语句块n ; else 语句块n+1 ; 3.2.1 if语句 3.2.2 switch语句 使用嵌套的if语句虽然可以实现多分支的选择结构,但if语句每次判断只能有两个分支,当判断的条件较多时,程序的可读性将大大降低。switch语句(也称为开关语句)专门用于多分支的选择结构,其语法更简单,能处理复杂的条件判断。 switch语句有一个控制表达式,其分支语句根据控制

14、表达式的值的不同,执行不同的语句块。switch语句的格式如下:【格式】switch (控制表达式) case 常量表达式1: 语句块1; break; case 常量表达式2: 语句块2; break; /其他分支 case 常量表达式n: 语句块n; break; default: 语句块n+1; break;3.2.2 switch语句【说明】 “控制表达式”可以是sbyte、byte、short、ushort、int、uint、long、ulong、bool、char、string或枚举类型,使用较多的是int和string类型。 switch 语句可以包括任意数目的 case块,但是

15、任何两个case语句都不能具有相同的值。“语句块”可以是单语句,也可以是多语句。 break语句用于中断选择分支的语句运行,此处用于跳出switch语句。在switch语句中,也可使用goto语句实现语句转移,但应尽量避免使用这种方法。3.2.2 switch语句3.2.2 switch语句【说明】 C#不支持从一个case标签显式贯穿到另一个case标签,因此在每一个 case 块(包括default块)的后面都必须有一个跳转语句(如break);但有一个例外,这个例外是当case块中没有代码时,空case标签可以贯穿到另一个case标签,这种情况下多个case语句可以使用同一个语句块进行处

16、理。 default标签用来处理不匹配case语句的值,定义default标签可以增强处理相应的异常。【例例】 改写输入的学生成绩改写输入的学生成绩Score的值,显示其是否及的值,显示其是否及格。格。3.3 循环语句 C#提供了多种形式的循环语句,包括提供了多种形式的循环语句,包括for语句、语句、foreach语句、语句、while语句和语句和dowhile语句。语句。 3.3.1 for语句语句 循环次数可知循环次数可知【格式格式】for(表达式表达式1; 表达式表达式2; 表达式表达式3) 循环体循环体 ;123445循环体以外的语句循环体以外的语句63.3.1 for语句 1+2+3

17、+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;3.3.1 for语句 【例例】编写一个编写一个Windows应用程序,计算应用程序,计算 a+aa+aaa+aaaa+. .+aa.a(n个)个) 的值,其中的值,其中a和和n为为19之间的整数。之间的整数。int a, n, num,sum;num = sum = 0;a = int.Parse(txtA.Text);n = int.Parse(txtN.Text);for

18、(int i = 1; i = n; i+) num = num * 10 + a; sum += num; txtSum.Text = sum.ToString();3.3.2 while语句 while语句一般用于语句一般用于循环次数未知循环次数未知的循环结构,也可的循环结构,也可以用于循环次数可知的循环结构。以用于循环次数可知的循环结构。 【格式格式】while(条件表达式条件表达式) 循环体循环体 ; 注意:注意:1.循环体可能执行循环体可能执行0次;次; 2.while(true) 永真循环,要使用永真循环,要使用break语句。语句。3.3.2 while语句 【例例】编写一个编写

19、一个Windows应用程序,将所输入整数的应用程序,将所输入整数的各个位上的数字按相反顺序输出。各个位上的数字按相反顺序输出。8639779368aa!=0b = a%10 ; / 7str=str+b.ToString();a=a/10; /8639b = a%10 ; / 9str=str+b.ToString();a=a/10; /8633.3.3 dowhile语句 dowhile语句语句与与while语句非常相似,而语句非常相似,而dowhile语句的测试条件在每一次循环结束时进行判语句的测试条件在每一次循环结束时进行判断,因为先执行后判断,所以断,因为先执行后判断,所以至少执行一次

20、至少执行一次。 【格式格式】do 循环体循环体 while(条件表达式条件表达式); 注意:注意:最后的分号不能省略,否则会提示错误。最后的分号不能省略,否则会提示错误。continue 与breakint 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=13.3.4 foreach语句 foreach语句是专用于对数组、集合等数据结构中的每一个元素进行循环操作的语句,通过它可以列举数组、集合中的每个元素,并且通过执行循环可以对每一个元素

21、进行需要的操作。foreach语句一般格式如下: 【格式】foreach(类型名 变量名 in 数组或集合名称) 循环体; 【功能】对数组或集合中的每一个元素(用“变量名”表示),执行循环体中的语句。3.3.4 foreach语句【说明】 “变量名”是一个循环变量,在循环中,该变量依次获取数组或集合中各元素的值,所以“类型名”必须与数组或集合的类型一致。 循环体可以是单语句,也可以是多语句。如果是单语句,大括号可以省略;如果是多语句,分号可以省略。 可以在循环体中的任意位置放置continue或break语句来结束本次循环或退出循环,break和continue语句通常结合if语句使用。【例例

22、】利用利用foreach语句计算数组中的奇数和偶数的个语句计算数组中的奇数和偶数的个数。数。3.3.5 循环的嵌套 如果一个循环(称为“外循环”)语句的循环体内包含另一个或多个循环(称为“内循环”)语句,称为循环的嵌套。内循环中还可以包含循环,形成多层循环。 通常把循环体内不含有循环语句的循环叫做单层循环,而把循环体内含有循环语句的循环称为多重循环。 在程序设计过程中,常常需要使用循环的嵌套来处理重复操作。而在处理重复操作时,往往又需要根据某一条件改变循环的正常流程。各种循环语句可以互相嵌套,嵌套的层数理论上无限制,但多重循环可能会导致程序的执行速度有所降低。【例例】 编写一个编写一个Wind

23、ows应用程序,输出九九乘法表。应用程序,输出九九乘法表。3.3.6 跳转语句 前面介绍过,可以在循环体中放置break语句来 强 制 终 止 循 环 , 还 可 以 在 循 环 体 中 放 置continue语句来结束本次循环。break语句和continue语句都是跳转语句,使用跳转语句,可以在循环的中途直接控制流程转移。 C#中提供了四种跳转语句:goto、break、continue和return语句。3.3.6 跳转语句 1. goto语句语句 goto(转向)语句可以将程序控制直接转移给由“行标签”标记的语句。但goto语句只能跳转到它所在方法内的行,而且该行必须有goto可以引用的行标签。 goto语句

温馨提示

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

评论

0/150

提交评论