清华大学C#程序设计经典教程课件.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 清华大学 C# 程序设计 经典 教程 课件
- 资源描述:
-
Click to edit Title Slide,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Title Slide,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Title Slide,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2026/10/3,1,C#程序设计经典教程,第一章 C#概述,1.总体要求,了解C#语言的特点及其发展,了解简单的三种应用程序(控制台应用程序、Windows窗体应用程序和Web应用程序)的结构及其特点,初步掌握Visual Studio.Net 中的操作方法,包括创建项目、编辑程序、生成和调试应用程序的方法,2.相关知识点,了解计算机软件、计算机语言及分类的知识,熟悉Windows系统基础知识及操作,3.学习重点,C#程序的结构、特点,C#程序的建立、编辑、生成和运行等基本上机操作过程,2026/10/3,3,第一章 C#概述,主要内容,C#简介,C#程序的开发环境,C#程序入门,2026/10/3,4,1.1 C#简介,1.1.1,C#,语言的发展,1.1.2 C#,语言的特点,返回,2026/10/3,5,1.1.1,C#,语言的发展,C#(读作C Sharp)是一种最新的、面向对象的编程语言。,C#是从 C 和 C+语言演化而来。,目前C#有四个版本,最新的是C#4.0,随Visual Studio.Net 一起发布。,本书以、和Visual Studio.Net 为范本,所有案例均在Visual Studio.Net 中经过调试运行无误的。,2026/10/3,6,1.1.2 C#,语言的特点,(1)C#,是一种精确、简单、类型安全、面向对象的语言。,(2)C#,具有生成持久系统级组件的能力,提供,COM+,或其他技术平台支持以集成现有代码,提供垃圾回收和类型安全以实现应用程序可靠性,提供内部代码信任机制以保证应用程序的安全性。,(3)C#,利用,.Net Framework,的通用类型系统能够与其他程序设计语言交互操作。,C#,应用程序能跨语言、跨平台互相调用。,(4)C#,支持,MSMQ,、,COM+,组件服务、,WCF,服务和,.NET Framework,,实现了组件之间的跨互联网的调用。,(5)C#,语言允许自定义数据类型,以扩展元数据。,(6)C#,增强了开发者的效率,同时也致力于消除编程中可能导致严重结果的错误。,C#,使,C/C+,程序员可以快速进行网络开发,同时也保持了开发者所需要的强大性和灵活性。,2026/10/3,7,1.2 C#程序的开发环境,的基本操作,1.2.2,解决方案和项目文件的组织结构,的帮助,返回,2026/10/3,8,1.2.1,1.应用程序项目的创建与打开,新建项目,打开项目,2.应用程序项目的设计与编辑,3.应用程序项目的调试与生成,操作演示,2026/10/3,9,1.2.2,解决方案和项目文件的组织结构,扩展名,名称,.sln,Visual Studio.Net,解决方案文件,.csproj,Visual C#,项目文件,.cs,Visual C#,源代码文件,.resx,资源文件,.aspx,Web,窗体文件,.asmx,XML Web,服务文件,2026/10/3,10,1.2.3,的帮助,VS 的帮助系统是基于Web的,有两种工作模式,包括本地模式和联机模式,在VS窗口中选择“帮助-管理帮助设置”菜单命令,可切换帮助系统的工作模式。,操作演示,返回,2026/10/3,11,1.3,C#,程序入门,一个简单的C#控制台应用程序,1.3.2,一个简单的Win 32应用程序,1.3.3,一个具有输入功能的Win 32应用程序,1.3.4,一个简单的WEB应用程序,C#程序的特点,返回,2026/10/3,12,1.3.1,一个简单的C#控制台应用程序,实例1-1:,设计一个,C#,控制台应用程序,,效果,如,下,图,:,操作演示,代码分析,(1)C#,程序必须引入命名空间:,using System;,System,命名空间是,.Net,最基本的命名空间,缺少,System,命名空间,源程序代码将无法编译。,(2),使用“,/”,或“,/*/”,来添加代码注释。,注意,程序的注释在编译将被自动忽略。,(3),使用,namespace,定义命名空间。,(4),定义类:使用,class,标识类的定义。,(5)C#,控制台应用程序必须包含一个,Main,方法。,默认的格式为:,static void Main(string args),(6),编写程序语句,:,一个,C#,程序通常包含若干条语句,,,每一个语句必须以英文字符分号“,;,”结尾,。,2026/10/3,13,1.3.2,一个简单的Win 32应用程序,实例1-2:,设计一个,C#Windows,窗体应用程序,效果如,下,图所示,操作演示,代码分析,(1)设计 Windows窗体应用程序时,必须引用命名空间和。,(2)Windows应用程序也是从Main方法开始执行的。VS 会在文件中自动生成维护Main方法,故不需要在Main方法中添加任何代码。,(3)Windows应用程序采用事件驱动编程思想,只有当事件发生时系统才能可能调用相应的事件方法。例如,窗体的Load事件对应事件方法HelloFrm_Load。,(4)事件方法根据需要编程。,2026/10/3,14,1.3.3,一个具有输入功能的Win 32应用程序,实例1-,3,:,设计一个,C#Windows,应用程序,效果如,下,图所示,操作演示,代码分析,(1),控件组成了程序运行时的操作界面,,,可以在程序运行时才添加,,,也可以在运行前完成所有设计。,(2),最常用的控件有:,Label,控件、,TextBox,控件和,Button,控件。其中,,Label,控件(即标签控件),一般用来显示提示信息或程序的运行结果;,TextBox,控件用来接收用户的键盘输入;,Button,控件,用于响应鼠标单击操作,触发单击事件并通知系统调用特定的方法。,(3),根据需要编写,事件方法,2026/10/3,15,1.3.4,一个简单的WEB应用程序,实例1-,4,:,设计一个,C#Web,应用程序,,效果如图所示。,操作演示,代码分析,(,1,)一个,Web,应用程序必须,引用,命名空间、。,(,2,),C#Web,应用程序不需要,Main,方法。,(,3,),C#Web,应用程序,也,采用事件驱动编程思想,只有当事件发生时系统才,执行,事件方法。例如,,Web,窗体的,Load,事件,对应,Page_Load,事件方法。,(,4,),根据需要编写事件方法,。,2026/10/3,16,五、C#程序的特点,1.必须借助Net Framework类库实现,2.必须定义类,3.类的代码主要由方法组成,4.C#程序中的方法由方法头部、方法体组成。,5.C#程序的语句,6.C#程序的输入与输出操作,7.C#程序的注释,返回,2026/10/3,17,作业,1.书面作业(见本章教材),2.上机实验(见本章教材),2026/10/3,18,Class Over,Thank you!,第二章,C#,程序设计基础,1,总体要求,掌握常量和变量概念,掌握变量的声明、初始化方法,掌握,C#,的常用的简单数据类型,了解枚举型、结构型,理解数据类型转换,掌握,C#,的运算符和表达式的概念,理解运算符运算规则,理解表达式的使用方法,理解数组和字符串的概念,掌握一维数组和字符串的使用方法,了解多维数组、数组型数组的应用,2,相关知识点,了解内存及其地址分配的相关知识,了解计算机中的数制(二进制、八进制、十六进制等)与字符编码(,ASICC,码、,GB2312-80,等、,Unicode,码等)的相关知识,第二章,C#,程序设计基础,3,学习重点,C#,语言中的常量、变量、数据类型、运算符、表达式等的概念,C#,语言中一维数组和字符串的概念及其使用方法,4,学习难点,枚举型、结构型,数据类型转换,运算符的运算规则,多维数组、数组型数组的概念,2026/10/3,21,第二章,C#,程序设计基础,主要内容,2,.1,常量与变量,2,.2,C#,的数据类型,2,.3,运算符与表达式,2,.,4,数组和字符串,2026/10/3,22,2,.1常量与变量,2.1.1,常量,2.1.2,变量,返回,2026/10/3,23,常量,在程序运行过程中,其值始终不变的量称之为常量。,整型常量,整型常量又分为:有符号的整型常量、无符号整型常量、长整型常量。无符号整型常量在书写时添加,u,或,U,标志。长整型常量在书写时添加,l,或,L,标记。,浮点型常量,浮点型常量又分为:单精度浮点型常量和双精度型常量。单精度浮点型常量在书写时添加,f,或,F,标记,而双精度型常量添加,d,或,D,标记。,2026/10/3,24,常量,小数型常量,小数型常量的后面必须添加,m,或,M,标记,,字符型常量,字符型常量是一个标准的,Unicode,字符,使用两个英文单引号来标记。,C#,语言还允许使用一种特殊形式的字符常量,即以反斜杠符(,)开头,后跟字符的字符序列,称之为转义字符常量,用它来表示控制及不可见的字符。,2026/10/3,25,常量,常用的转义字符,转义符,说明,单引号,双引号,反斜线符,0,空字符,uhhhh,使用十六进制形式的,Unicode,字符,例如字符,u0041,表示,Unidcode,字符,A,a,响铃(警报)符,与,u0007,匹配,b,退格符,与,u0008,匹配,t,Tab,符,与,u0009,匹配。,r,回车符,与,u000D,匹配。,v,垂直,Tab,符,与,u000B,匹配。,f,换页符,与,u000C,匹配。,n,换行符,与,u000A,匹配。,0dd,使用八进制形式的,ASCII,字符,例如字符,040,表示,ASCII,的空格字符,xhh,使用十六进制形式的,ASCII,字符,例如字符,x41,表示,ASCII,字符,A,2026/10/3,26,常量,布尔型常量,布尔型常量只有两个,一个是,true,,表示逻辑真;另一个,false,,表示逻辑假。,字符串常量,字符串常量表示若干个,Unicode,字符组成的字符序列,使用两个英文双引号来标记,,2026/10/3,27,2.1.2,变量,变量的概念,在程序运行过程中,其值可以被改变的量称之为变量。,变量名,每个变量都必须有一个名字,即变量名。,变量命名应遵循标识符的命名规则,如必须以字母、下划线(,_,)和汉字打头,可包含字母、数字、下划线和汉字,不能包含空格,不能使用,C#,保留字等。,变量值,程序运行时,系统自动为变量分配内存单元,用来存储变量的值。在程序中,通过变量名来引用变量的值。,2026/10/3,28,2.1.2,变量,变量的定义,使用变量之前必须先指定变量名、变量值的数据类型,该操作称为变量的定义。其一般形式为:,类型标识符 变量名,1,,变量名,2,,,;,int a,b,c;/a,b,c,为整型变量,在定义变量时,应注意以下几点:,在多个相同类型的变量时,各变量名之间用逗号间隔,类型标识符与变量名之间至少用一个空格间隔;,最后一个变量名之后必须以“,;,”号结尾;,变量定义必须放在变量使用之前;,2026/10/3,29,2.1.2,变量,变量的初始化,变量初始化就是指定变量的初始值。变量的初始化有两种形式。一种是在定义变量的同时实始化,另一种是先定义变量再初始化。,前者的一般形式为:,类型标识符 变量名,1,初值,1,,变量名,2,初值,2,,,;,例如:,int a=12,b=-24,c=10;,注意,,C#,允许在定义变量时部分初始化。,例如:,float f1,1.25,f2,3.6,f3,;,后者允许为多个变量设置不同的初始值,也允许为多个变量设置相同的初始值。,例如,,int a,b,c;a=1;b=2;c=3;,2026/10/3,30,2.1.2,变量,实例,2-1,创建一个,Windows,应用程序,展示变量的使用方法,包括定义、初始化和引用。,2026/10/3,31,2,.2,C#,的数据类型,2.2.1,简单类型,2.2.2,枚举型,enum,2.2.3,结构型,struct,2.2.4,数据类型转换,返回,2026/10/3,32,2.2.1,简单类型,C#,中简单类型,类型,别名,长度,(,位,),类型,别名,长度,(,位,),sbyte,System.Sbyte,8,long,System.Int64,64,byte,System.Byte,8,ulong,System.UInt64,64,char,System.Char,16,float,System.Single,32,short,System.Int16,16,double,System.Double,64,ushort,System.UInt16,16,decimal,System.Decimal,128,int,System.Int32,32,bool,System.Boolean,1,uint,System.UInt32,32,2026/10/3,33,2.2.1,简单类型,整数型,类型,范 围,长度,sbyte,有符号字节型,-128,127,8,位,byte,字节型,0,255,8,位,char,字符型,U+0000,U+FFFF,(,Unicode,字符集中的字符),16,位,short,短整型,-32,768,32,767,16,位,ushort,无符号短整型,0,65,535,16,位,int,整型,-2,147,483,648,2,147,483,647,32,位,uint,无符号整型,0,4,294,967,295,32,位,long,长整型,-9,223,372,036,854,775,808,9,223,372,036,854,775,807,64,位,ulong,无符号长整型,0,18,446,744,073,709,551,615,64,位,2026/10/3,34,2.2.1,简单类型,浮点型,浮点型一般用来表示一个有确定值的小数,,float,型:取值范围在,1.5e45,到,精度为,7,位,double,型:取值范围在,5.0e324,到,精度为,15,到,16,位,小数型,decimal,decimal,型:取值范围在,1.0,10e28,至,7.9,10e28,,精度为,28,到,29,位。,布尔型,bool,布尔型用来表示逻辑真或逻辑假,因此只有两种取值:,true,或,false,,,2026/10/3,35,2.2.2,枚举型,enum,枚举型实质就是使用符号来表示的一组相互关联的数据。,enum Months Jan,Feb,Mar,Apr,May,Jun,Jul,Augt,Sep,Oct,Nov,Dec,。,枚举元素的数据值是确定的,一旦声明就不能在程序的运行过程中更改;,枚举元素的个数是有限的,同样一旦声明就不能在程序的运行过程中增减;,默认情况下,枚举元素的值是一个整数,第一个枚举数的值为,0,,后面每个枚举数的值依次递增,1,;,如果需要改变默认的规则,则重写枚举元素的值即可,2026/10/3,36,2.2.2,枚举型,enum,【实例,2-2,】创建一个,Windows,应用程序,展现枚举型的使用方法,2026/10/3,37,2.2.3,结构型,struct,结构型的定义,C#,的结构型必须使用,struct,来标记。,C#,的结构型的成员包含数据成员、方法成员等。其中,数据成员表示结构的数据项,方法成员表示对数据项的操作。一个完整的结构体示例如下:,struct Student,public int no;,public string name;,public char sex;,public int score;,;,2026/10/3,38,2.2.3,结构型,struct,结构型的使用,自定义的结构型与简单类型(如,int,)一样,可用来定义变量。一旦定义了结构型变量,就可以通过该变量来引用其任意成员。引用结构型的成员的格式如下:,结构型变量,.,结构型成员,Student s;/,定义结构型变量,s,s.no=10001;/,为,s,的成员变量,no,赋值,s.name=,许恒,;/,为,s,的成员变量,name,赋值,2026/10/3,39,2.2.2,枚举型,enum,【实例,2-3,】创建一个,Windows,应用程序,展示结构型的使用方法,2026/10/3,40,2.2.4,数据类型转换,隐式转换,隐式转换一般在不同类型的数据进行混合运算时候发生,当编译器能判断出转换的类型,而且转换不会带来精度的损失时,,C#,语言编译器会自动进行隐式转换。,隐式转换遵循以下规则:,如果参与运算的数据类型不相同,则先转换成同一类型,然后进行运算;,转换时按数据长度增加的方向进行,以保证精度不降低,例如,int,型和,long,型运算时,先把,int,数据转成,long,型后再进行运算;,所有的浮点运算都是以双精度进行的,即使仅含,float,单精度量运算的表达式,也要先转换成,double,型,再作运算;,byte,型和,short,型参与运算时,必须先转换成,int,型;,char,可以隐式转换为,ushort,、,int,、,uint,、,long,、,ulong,、,float,、,double,或,decimal,,但是不存在从其他类型到,char,类型的隐式转换。,2026/10/3,41,2.2.4,数据类型转换,显示转换,显示转换就是需要明确要求编译器完成的转换,也称强制类型转换,在转换时,需要用户明确指定转换的类型,强制类型转换的一般形式为:,(,类型说明符,)(,待转换的数据,),其含义是:把特转换的数据的类型强制转换成类型说明符所表示的类型。,显示转换有可能造成精度损失,.,2026/10/3,42,2.2.4,数据类型转换,【注意】在使用强制转换时应注意以下问题:,待转换的数据不是单个变量时,类型说明符和特转换的数据都必须加圆括号。,无论是强制转换或是隐式转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。,C#,允许用类提供的类型转换方法来转换数据类型,常用的转换方法有:,ToBoolean,、,ToByte,、,ToChar,、,ToInt32,、,ToSingle,、,ToString,、,ToDateTime,等,分别表示将指定数据转换为布尔值、字节数、字符编码、整型数、单精度数、字符串、日期等,2026/10/3,43,2.3,运算符与表达式,2.3.1,算术运算符与表达式,2.3.2,赋值运算符与表达式,2.3.3,关系运算符与表达式,2.3.4,逻辑运算符与表达式,返回,2026/10/3,44,算术运算符与表达式,算术运算符用于数值运算。,C#,算术运算符包括,+,(加)、,-,(减)、,*,(乘)、,/,(除)、,%,(求余数)、,+,(自增)、,-,(自减)共七种。,+,、,-,、,*,、,/,、,%,是二目运算符,,两个整数相除的结果为整数,2026/10/3,45,算术运算符与表达式,+,、,-,两种运算符都是单目运算符,具有右结合性(也就是优先同运算符右边的变量结合,使该变量的值增加,1,或减小,1,),而且它们的优先级比其他算术运算符高。,当,+,或,-,运算符置于变量的左边时,称之为前置运算,表示先进行自增或自减运算再使用变量的值,当,+,或,-,运算符置于变量的右边时,称之为后置运算,表示先引用变量的值再自增或自减运算。,2026/10/3,46,2.3.1,算术运算符与表达式,【实例,2-4,】算术运算符的应用测试,2026/10/3,47,2.3.2,赋值运算符与表达式,简单赋值运算符,其一般形式为:变量,=,表达式,其功能是先计算表达式的值再赋给左边的变量。赋值运算符具有右结合性。,【注意】在使用赋值表达式时,应注意以下两点:,在赋值运算中,如果赋值号两边的数据类型不同,则系统将自动先将赋值号右边的类型将转换为左边的类型再赋值;,在赋值运算中,不能把右边数据长度更大的数值类型隐式转换并赋值给左边数据长度更小的数值类型。,2026/10/3,48,2.3.2,赋值运算符与表达式,【实例,2-5,】赋值运算符及隐式数据类型转换应用测试,2026/10/3,49,2.3.3,关系运算符与表达式,关系运算符用来对两个操作数比较,以判断两个操作数之间的关系。,C#,的关系运算符有,=,、,!=,、,、,=,,分别是相等、不等、小于、大于、小于等于、大于等于运算。,关系运算符的优先级低于算术运算符。,由关系运算符组成的表达式称为关系表达式。关系表达式的运算结果只能是布尔型值,要么是,true,,要么是,false,。,2026/10/3,50,2.3.4,逻辑运算符与表达式,C#,的逻辑运算符包括,!,、,&,或,&,、,|,或,|,、,,分别是逻辑“非”运算、逻辑“与”运算、逻辑“或”运算、逻辑“异或”运算。,逻辑运算符的优先级低于关系运算符的优先级,但高于赋值运算符的优先级。,由逻辑运算符组成的表达式称为逻辑表达式。逻辑表达式的运算结果只能是布尔型值,要么是,true,,要么是,false,。,逻辑非运算符“,!,”是,表示对某个布尔型操作数的值求反,即当操作数为,false,时运算符返回,true,。,2026/10/3,51,2.3.4,逻辑运算符与表达式,逻辑与运算符“,&,”或“,&,”表示对两个布尔型操作数进行与运算,当且仅当两个操作数均为,true,时,结果才为,true,。运算符“,&,”与运算符“,&,”的主要区别是,当第一个操作数为,false,时,前者不再计算第二个操作数的值。,逻辑或运算符“,|,”或“,|,”表示对两个布尔型操作数进行或运算,当两个操作数中只要有一个操作数为,true,时,结果就为,true,。运算符“,|,”与运算符“,|,”的主要区别是,当第一个操作数为,true,时,前者不再计算第二个操作数的值。,逻辑异或运算符“,”表示对两个布尔型操作数进行异或运算,当且仅当只有一个操作数为,true,时,结果才为,true,,注意或运算与异或运算的区别。,2026/10/3,52,2.3.4,逻辑运算符与表达式,【实例,2-6,】创建一个,Windows,应用程序,测试关系运算符与逻辑运算符,2026/10/3,53,2.4,数组和字符串,一维数组,2.4.2,多维数组,2.4.3,数组型的数组,2.4.4,字符串,string,返回,2026/10/3,54,一维数组,数组是一种由若干个变量组成的集合,数组中包含的变量称为数组元素,它们具有相同的类型。,数组元素可以是任何类型,但没有名称,只能通过索引(又称下标,表示位置编号)来访问。,数组有一个“秩”,它表示和每个数组元素关联的索引的个数。数组的秩又称为数组的维度。“秩”为,1,的数组称为一维数组,“秩”大于,1,的数组称为多维数组。,一维数组的元素个数称为一维数组的长度。一维数组长度为,0,时,称之为空数组。一维数组的索引从零开始,具有,n,个元素的一维数组的索引是从,0,到,n-1,。,2026/10/3,55,一维数组,一维数组的声明和创建,声明和创建一维数组的一般形式如下:,数组类型,数组名,=new,数组类型,数组长度,一维数组也可以先声明后创建。,一维数组的初始化,如果在声明和创建数组时没有初始化数组,则数组元素将自动初始化为该数组类型的默认初始值。,初始化数组有多种方式:一是在创建数组时初始化,二是先声明后初始化,三是先创建后初始化。,2026/10/3,56,一维数组,一维数组的初始化,创建时初始化,数组类型,数组名,=new,数组类型,数组长度,初始值列表,其中,数组长度可省略。如果省略数组长度,系统将根据初始值的个数来确定一维数组的长度。,如果指定了数组长度,则,C#,要求初始值的个数必须和数组长度相同,,初始值之间以逗号作间隔。,创建时初始化一组数组可采用如下简写形式:,数组类型,数组名,=,初始值列表,2026/10/3,57,一维数组,一维数组的初始化,先声明后初始化,C#,允许先声明一维数组,然后再初始化各数组元素。其一般形式如下:,数组类型,数组名,;,数组名,=new,数组类型,数组长度,初始值列表,;,先创建后初始化,C#,允许先声明和创建一维数组,然后逐个初始化数组元素。其一般形式如下:,数组类型,数组名,=new,数组类型,数组长度,;,数组元素,=,值,;,2026/10/3,58,一维数组,一维数组的使用,数组是若干个数组元素组成的。每一个数组元素相当于一个普通的变量,可以更改其值,也可以引用其值。使用数组元素的一般形式如下:数组名,索引,一维数组的操作,C#,的数组类型是从抽象基类型,System.Array,派生的。,Array,类的,Length,属性返回数组长度。,Array,类的方法成员:,Clear,、,Copy,、,Sort,、,Reverse,、,IndexOf,、,LastIndexOf,、,Resize,等,分别用于清除数组元素的值、复制数组、对数组排序、反转数组元素的顺序、从左至右查找数组元素、从右到左查找数组元素、更改数组长度等。,Sort,、,Reverse,、,IndexOf,、,LastIndexOf,、,Resize,只能针对一维数组进行操作。,2026/10/3,59,一维数组,【实例,2-7,】数组及其应用演示,2026/10/3,60,2.4.2,多维数组,多维数组的声明和创建,声明和创建多维数组一般形式如下:,数组类型,逗号列表,数组名,=new,数组类型,维度长度列表,逗号列表的逗号个数加,1,就是维度数,即如果逗号列表为一个逗号,则称为二维数组;如果为两个逗号,则称为三维数组,依此类推。维度长度列表中的每个数字定义维度的长度,数字之间以逗号作间隔。,2026/10/3,61,2.4.2,多维数组,多维数组的初始化,以维度为单位组织初始化值,同一维度的初始值放在一对花括号,之中。,可以省略维度长度列表,系统能够自动计算维度和维度的长度。但注意,逗号不能省略。,初始化多维数组可以使用简写格式。但如果先声明多维数组再初始化,就不能采用简写格式。,多维数组不允许部分初始化。,多维数组的使用,数组名,索引列表,2026/10/3,62,2.4.3,数组型的数组,数组型的数组是一种由若干个数组的构成数组。,数组型数组的声明和创建,声明数组型数组的格式如下:,数组类型,维度,子数组的维度,数组名,=new,数组类型,维度长度,子数组的维度,其中,省略维度为一维数组,省略子数组的维度表示子数组为一维数组。,2026/10/3,63,2.4.3,数组型的数组,数组型数组的初始化,数组型数组同样有多种初始化方式,包括创建时初始化、先声明后初始化等。其中,创建时初始化可省略维度长度,引用子数组的元素,对于数组型的数组来说,可按以下格式引用子数组的每一个元素:,数组名,索引列表,索引列表,2026/10/3,64,2.4.3,数组型的数组,【实例,2-8,】多维数组、数组型的数组的应用展示,2026/10/3,65,2.4.4,字符串,string,C#,字符串是一个由若干个,Unicode,字符的组成字符数组。,字符串常量使用双引号来标记,,字符串变量使用,string,关键字来声明。,两个字符串可以通过加号运算符(,+,)来连接,,C#,字符串是不可变的,也就是说字符串一旦创建,其内容就不能更改。,C#,允许使用关系运算符,=,、,!=,来比较两个字符串各对应的字符是否相同。,C#,的字符串可以看成一个字符数组。因此,,C#,允许通过索引来提取字符串中的字符。,2026/10/3,66,2.4.4,字符串,string,C#,的,string,是,System.String,的别名。,在,.Net Framework,之中,提供的常用属性和方法有:,Length,、,Copy,、,IndexOf,、,LastIndexOf,、,Insert,、,Remove,、,Replace,、,Split,、,Substring,、,Trim,、,Format,等,分别用来获得字符串长度、复制字符串、从左查找字符、从右查找字符、插入字符、删除字符、替换字符、分割字符串、取子字符串、压缩字符串的空白、格式化字符串等。,为了增强字符串的操作,,.NET Framework.,类库还提供了类,可以构造可变字符串。,StringBuilder,类提供的常用属性和方法有:,Length,、,Append,、,Insert,、,Remove,、,Replace,、,ToString,等,分别用来获得字符串长度、追加字符、插入字符、删除字符、替换字符、将,StringBuilder,转化为,string,字符串。,2026/10/3,67,2.4.4,字符串,string,【实例,2-9,】设计一个,Windows,应用程序,展示字符串及其应用,操作界面如图所示。,2026/10/3,68,作业,1.书面作业(见本章教材),2.上机实验(见本章教材),2026/10/3,69,Class Over,Thank you!,第三章,C#,程序的流程控制,1.,总体要求,理解分支的概念,掌握,if,语句和,switch,语句的使用方法,理解循环的概念,掌握,while,、,do/while,、,for,、,foreach,语句的使用方法,理解分支嵌套、循环嵌套的概念,了解相关应用,了解,goto,语句,掌握,continue,和,break,语句的使用方法,2.,相关知识点,if,语句和,switch,语句,while,、,do/while,、,for,、,foreach,语句,3.,学习重点,分支嵌套和循环嵌套,2026/10/3,71,第三章,C#,程序的流程控制,主要内容,C#,程序的分支语句,3.2,C#,程序的循环语句,跳转语句,2026/10/3,72,3.1 C#,程序的分支语句,3.1.1,if,语句,3.1.2 switch,语句,返回,2026/10/3,73,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,。,控件,属性,属性设置,Label 1,Text,请输入学生年龄,Label2,Name,lblshow,Textbox1,Name,txtAge,Button1,Name,bmOk,Text,确定,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、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


清华大学C#程序设计经典教程课件.ppt
















自信AI助手![《音乐之都维也纳》ppt课件98512[精编文档].ppt](/Images/s.gif)














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14510938.html