第二章C程序设计基础.ppt

上传人:sccc 文档编号:5671035 上传时间:2023-08-08 格式:PPT 页数:72 大小:684.51KB
返回 下载 相关 举报
第二章C程序设计基础.ppt_第1页
第1页 / 共72页
第二章C程序设计基础.ppt_第2页
第2页 / 共72页
第二章C程序设计基础.ppt_第3页
第3页 / 共72页
第二章C程序设计基础.ppt_第4页
第4页 / 共72页
第二章C程序设计基础.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《第二章C程序设计基础.ppt》由会员分享,可在线阅读,更多相关《第二章C程序设计基础.ppt(72页珍藏版)》请在三一办公上搜索。

1、.NET程序设计,咸阳师范学院 信息工程学院李 红,2,该课程主要内容:,第一章 C#.NET概述第二章 C#程序设计基础第三章 面向对象程序设计第四章 Windows程序设计基础第五章 数据库应用开发技术,第六章 文件操作第七章 多线程开发技术第八章 GDI+图形编程基础第九章 图像编程技术第十章 ASP.NET编程基础,第二章 C#程序设计基础,4,重点及难点:,掌握C#的基本数据类型;掌握C#各种运算符表达式的用法;理解C#控制台程序的基本结构;会使用IF、WHILE、FOR等语句编写程序;掌握数组的使用方法;了解异常处理方法;,5,本章主要内容:,2.1 C#基本数据类型2.2 常量、

2、变量与表达式2.3 选择结构2.4 循环结构2.5 异常处理,6,数据类型是对客观数据对象的抽象,它将数据和对数据的操作封装为一个整体;C#是一种强类型语言,它在程序中用到的变量、表达式和数值等都必须有类型;分类:2.1.1 值类型2.1.2 引用类型,2.1 C#基本数据类型,7,2.1 C#基本数据类型,值类型和引用类型的区别:,8,值类型:简单类型(Simple Type)整形实型、十进制型布尔型结构类型(Struct Type)枚举类型(Enum Type)引用类型:类类型(Class Type)接口类型(Interface Type)委托类型(Delegate)数组类型(Array

3、Type),2.1 C#基本数据类型,9,2.1.1 值类型,值类型就是一个包含实际数据的量。值类型变量直接含有它们的数据。每一个值类型变量都有它自己数据的副本,因此对一个变量的操作不会影响到另一个变量。当定义一个值类型的变量时,C#会根据它所声明的类型,以堆栈方式分配一块大小合适的存储区域给这个变量,随后对这个变量的读或写操作就直接在这块内存区域进行。,10,简单类型是由一系列元素构成的数据类型;,1简单类型(Simple Type),11,1简单类型(Simple Type),整数类型有九种,区别在于所占存储空间的大小,带不带符号位以及所能表示数的范围不同;字符型归为整形;但它与整形又不同

4、,它不支持从其它类型到字符型的隐式转换;有符号 sbyte short int long 如 87L,0 x1F无符号 byte ushort uint ulong 如 87UL字符类型 char 如a uA0B1 n(回车),12,1简单类型(Simple Type),实数类型浮点类型一般不产生异常;float 如 3.14Fdouble 如 3.14 3.14D(后面这个D可以省略)十进制类型有较高的精度,但取值范围较小;Decimal 如 120.50M从浮点型到十进制类型的转换可能会产生溢出异常;从十进制类型到浮点类型的转换则会导致精度的损失;二者间不存在隐式转换;,13,1简单类型(

5、Simple Type),布尔类型bool 如 true false(小写)与其它类型之间不存在标准转换;,14,C#中定义了四类/八种基本数据类型逻辑型-boolean文本型-char整数型-byte,short,int,long浮点数型-float,double注意:每种数据类型都有一个关键词int 相当于 System.Int32double 相当于 System.Doublebool 相当于 System.Boolean,1简单类型(Simple Type),15,2枚举类型(Enum Type),枚举类型是一种值类型,它用于声明一组命名的常数。枚举类型的声明形式:访问修辞符 enum

6、 枚举名:基础类型 枚举成员,16,2枚举类型(Enum Type),注:基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是int。,17,2枚举类型(Enum Type),每个枚举成员的常数值必须在该枚举的基础类型的范围之内;第一个枚举成员的默认值为零;,18,3结构类型,结构类型是指把各种不同类型数据信息组合在一起形成的组合类型;结构是用户自定义的数据类型;声明结构类型的一般语法格式如下struct

7、 标识符 结构成员定义;,19,例:struct Student/定义名为Student的结构类型 long no;/定义结构的数据成员 string name;int age;string university;/定义结构的方法成员 void structmethod()/方法可执行代码,3结构类型,20,3结构类型,结构成员分为:静态成员成员名前有static;通过结构名来访问;实例成员:成员名前无static通过创建结构类型的变量来访问;,21,创建结构类型的变量的一般形式如下:结构名 标识符;如:Student zhangsan,lisi;说明:结构名为已声明的结构类型的名称,标识符必

8、须是C#合法的标识符,它用来表示结构类型的变量。,3结构类型,22,2.1.2 引用类型,引用类型是将数据保存在堆上的存储方式。当将一个数据给引用类型时,它被保存在堆上的变量中。引用类型的大小不固定,为了可以快速地搜索引用类型数据的值,通过将其地址保存在堆栈上,可以通过地址找到真正数据的所在。,23,2.1.2 引用类型,引用类型很抽象,就像一个门牌号,可以根据门牌号找到所在的房子。引用类型一般包括类、接口、委托和数组等。,24,1 类,类是引用类型;new用来显示创建类的变量;,25,2 数组,数组是一种聚合类型,表示具有相同类型的一组对象的集合,这些对象叫做数组元素;数组是多个相同类型数据

9、的组合,实现对这些数据的统一管理;数组属引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量;数组中的元素可以是任何数据类型,包括基本类型和引用类型;,26,一维数组,1一维数组一维数组的声明:int nums;数组元素的下标从0开始;使用数组要防止“越界”;作为引用类型需要初始化后才能使用,且需要指定数组长度;数组中存放的只是各个引用对象的地址,此时有可能多个数组指向同一个对象;作为值类型数据直接存放在数组中;,27,例如:int a1;double b;Mydate c;C#语言中声明数组时不能指定其长度(数组中元素的个数),例如:int a5;/非法,一维数组,28,2数组

10、初始化动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行。int a;a=new int3;a0=3;a1=9;a2=8;,一维数组,29,静态初始化:在定义数组的同时就为数组元素分配空间并赋值。int a=3,9,8;MyDate dates=new MyDate(22,7,1964),new MyDate(1,1,2000),new MyDate(22,12,1964);,一维数组,30,规则多维数组规则多维数组的定义:string,names=new string5,4;初始化:int,numbers=new int3,2 1,2,3,4,5,6;可省略数组的大小,如下所示:in

11、t,numbers=new int,1,2,3,4,5,6;如果提供了初始值设定项,还可省略 new 语句,如下所示:int,numbers=1,2,3,4,5,6;,二维数组,31,交错的数组定义方法:byte scores;int numbers=new int2 new int 2,3,4,new int 5,6,7,8,9;可省略第一个数组的大小,如下所示:int numbers=new int new int 2,3,4,new int 5,6,7,8,9;,二维数组,32,class Study public int x=15;/类的变量,默认为15class Program st

12、atic void Main(string args)/引用类型的演示 Study A1=new Study();Study A2=A1;A2.x=25;/值类型的演示 int B1=35;int B2=B1;B2=45;Console.WriteLine(A1.x=+A1.x+,A2.x=+A2.x);/引用类型结果 Console.WriteLine(B1=+B1+,B2=+B2);/值类型结果 Console.Read();,33,2.2 常量、变量与表达式,2.2.1 常量2.2.2 变量2.2.3 运算符与表达式2.2.4 运算符的优先级与结合性2.2.5 类型转换,34,2.2.1

13、 常量,常量就是在程序的运行期间其值不会改变的量,通常分为直接常量和符号常量。直接常量(1)整型常量(2)实型常量(3)字符常量(4)字符串常量(5)布尔常量,35,1直接常量,(1)整型常量C#语言整型常量的三种表示形式:十进制整数,如12,-314,0。八进制整数,要求以0开头,如012 十六进制数,要求0 x或0X开头,如0 x12 C#语言的整型常量默认为int型,如:int i=3;声明long型常量可以后加 l 或 L,如:long l=3L;,36,(2)实型常量C#浮点类型常量有两种表示形式:十进制数形式:必须含有小数点,例如:3.14 314.0.314 科学记数法形式:如:

14、3.14e2 3.14E2 314E2 C#浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:double d=3.14;float f=3.14f;,1直接常量,37,(3)字符常量字符常量是用单引号括起来的单个字符,如:char c=A;C#字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示char c1=u0061;C#语言中还允许使用转义字符来将其后的字符转变为其它的含义char c2=n;/代表换行符,1直接常量,38,1直接常量,39,(4)字符串常量字符串常量是用双引号括起的零个或多个字符序列。C#支持两种形式的

15、字符串常量:一种是常规字符串;另一种是逐字字符串。常规字符串就是用双引号括起的一串字符,可以包括转义字符。如:”China,Beijing”,“d:myfilef1.txt”等。,1直接常量,40,(5)布尔常量boolean类型适于逻辑运算,一般用于程序流程控制。boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。,1直接常量,41,2.符号常量,符号常量通常用来保存一个固定值;例如,在程序设计中,圆周率“PI”是一个固定的值,那么,在程序开始时,就可以将其定义为一个常量。常量的定义语法如下所示,其中,“const”是定义常量的关键字,同时还要

16、将变量名大写。const 类型名称 常量名=常量表达式;如:const double PI=3.1415926;,42,2.2.2 变量,1变量命名规则变量名的首字符必须是字母、汉字或下划线;变量名中不能包含空格、小数点以及各种符号;组成变量名的字符数不要太长,应控制在330个字符;变量名不能是关键字。如:int,object等不能用作变量名;变量名在同一范围内必须是唯一的;,43,在C#中声明变量使用下述语法:类型 标识符;注意:C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量;如果检测到局部变量在初始化之前就使用了它的值,就会产生错误;,2.2.2 变量,44,运算符

17、1 算术运算符2 字符串运算符3 赋值运算符4 逻辑运算符5 位运算符6 条件赋值运算符,2.2.3 运算符与表达式,45,1 算术运算符,算术运算符:+,*,/,%,+,-有关/:15/4 15/3 15/2 15.0/2有关%:100%3 100%-3-100%-3-100%3有关%的含义:偶数 a%2,整除 a%7,个位 a%10有关+,-:a=5;a+;b=a*2 a=5;b=+a*2;a=5;b=a+*2;,46,2 字符串运算符,字符串连接运算符+除用于算术加法运算外,还可用于对字符串进行连接操作int i=300+5;string s=hello,+world!;+运算符两侧的操

18、作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接string s=hello,+300+5+号;/输出:hello,3005号,47,3 赋值运算符,赋值运算符就是常见的“=”,它可以为数值型、枚举、类等所有的类型赋值。使用“=”的语法如下所示:变量=值;其中,“=”左边一般为变量的名称,“=”右边为固定的值、已经知道的变量或新实例化的类。还有一种赋值运算符可计算后再赋值。如“+=”或“-=”。,48,4关系运算符与关系表达式,49,5逻辑运算符,与:C#中的符号为“&”,表示必须满足两个条件。语法为“表达式1&表达式2”。或:C#中的符号为“|

19、”,表示满足两个条件中的任意一个即可。语法为“表达式1|表达式2”。非:C#中的符号为“!”。表示取当前表达式结果的相反结果。如果当前表达式为“true”,则计算结果为“false”。语法为“!表达式”。,50,6位运算符,&按位与:将两个值的二进制进行与操作。只有两个二进位均为1时,结果位才为1,否则为0|按位或:将两个值的二进制进行或操作。只要两个二进制位中有一个为1,结果位就等于1,否则为0按位异或取反右移:将变量的二进制位往右移动,51,7条件赋值运算符及表达式,条件运算符由符号“?”与“:”组成,通过操作三个操作数完成运算;一般格式为:逻辑表达式?表达式1:表达式2在条件赋值表达式在

20、运算时,首先运算“逻辑表达式”的值,如果为true,则运算结果为“表达式1”的值,否则运算结果为“表达式2”的值。如:条件表达式43?1:2的值为1;条件表达式34?1:2的值为2。,52,2.3 选择结构,2.3.1if语句1、单分支if语句2、双分支ifelse语句3、多分支if语句2.3.2 switch语句,53,2.3.1if语句,1、单分支if语句语法形式如下:if(表达式)语句;说明:如果表达式的值为true(即条件成立),则执行后面if语句所控制的语句块;否则什么都不执行。,54,2、双分支ifelse语句语法如下:if(表达式)语句块1;else 语句块2;说明:如果表达式的

21、值为true(即条件成立),则执行后面if语句所控制的语句块1;如果表达式的值为false(即条件不成立),则执行else语句所控制的语句块2;然后再执行下一条语句。,2.3.1if语句,55,3、多分支if语句在ifelse语句中可以嵌套使用多层ifelse语句,如:if(表达式1)if(表达式2)if(表达式3)语句1;else语句2;else 语句3;else 语句4;,2.3.1if语句,56,例:首先输入一个成绩,然后判断该成绩是优、良、中、及格还是不及格。class Test static void Main()Console.Write(请输入考试成绩:);double scor

22、e=double.Parse(Console.ReadLine();if(score=90)Console.WriteLine(成绩为优);else if(score=80)Console.WriteLine(成绩为良);else if(score=70)Console.WriteLine(成绩为中);else if(score=60)Console.WriteLine(成绩为及格);elseConsole.WriteLine(成绩为不及格);,2.3.1if语句,57,2.3.2 switch语句,switch语句的一般格式如下:switch(表达式)case 常量表达式1:语句1;brea

23、k;case 常量表达式2:语句2;break;case 常量表达式n:语句n;break;default:语句n+1;break;,58,说明:switch语句也是一个多条件判断语句;当代码执行到此语句时,根据“case”语句的条件,逐个判断变量的值,满足条件的,则进入相对应的“case”代码段,如果不满足任何“case”条件,则进入“default”语句,执行默认代码段。每个“case”代码段内都必须带有一个“break;”语句,用来从当前分支条件中跳出。,2.3.2 switch语句,59,2.4 循环结构,2.4.1while语句2.4.2do-while语句2.4.3for语句2.4

24、.4foreach语句2.4.5跳转语句,60,2.4.1while语句,while语句的语法如下:while(条件)循环体语句;,61,2.4.1while语句,下面的实例用whlie语句实现输出0到99。class WhileClass static void Main()int i=0;while(i 100)Console.WriteLine(i);i+;Console.Read();,62,2.4.2do-while语句,一般形式:do 循环体语句;while(表达式);,63,注意while语句与do-while语句的区别:while语句是“先判断再执行”;while语句循环体里的

25、语句可能一次都不执行;do-while语句是“先执行后判断”,do-while循环体里的语句,至少执行一次;,2.4.2do-while语句,64,2.4.3for语句,for语句的使用语法如下所示。for(表达式1;表达式2;表达式3)循环体语句;,65,for语句的执行过程为:(1)首先计算表达式1的值;(2)判断表达式2的值是true还是false,若表达式2的值为false,则转而执行步骤(4);若表达式2的值是true,则执行循环体中的语句,然后求表达式3的值;(3)转回步骤(2);(4)结束循环,执行程序的下一条语句。,2.4.3for语句,66,2.4.4foreach语句,fo

26、reach语句是C#中新增的循环语句;处理数组及集合等数据类型是特别简便;foreach语句用于列举集合中的每一个元素,并且通过执行循环体对每一个元素都进行操作;语法格式:foreach(数据类型 标识符 in 表达式)循环体,67,2.4.4foreach语句,说明:在foreach语句执行过程中,循环变量就代表当前循环所执行的集合中的元素;每执行一次循环体,循环变量就依次将集合中的一元素带入其中,直到把集合中的元素处理完毕,则跳出foreach循环,转而执行程序的下一条语句;,68,2.4.5跳转语句,C#提供了break/continue语句,用来控制循环的执行;“break”可以中断当

27、前正在执行的循环,并跳出循环;“continue”表示继续执行当前的循环,而后面的代码无需执行,即重新开始循环;,69,2.5 异常处理,异常:就是程序运行时发生的错误或某种意想不到的状态;如溢出、被零除、数组下标超出界限以及内存不够等;所有异常类都必须继承自c#内建的位于System命名空间中的Exception异常类;,70,2.5 异常处理,C#中异常是以类的形式出现的:使用try/catch语句来捕获异常使用throw语句抛出异常使用finally语句,71,2.5 异常处理,把可能出现异常的语句块包含在一个try语句中,如果try块中出现异常,此异常就会被抛出;使用catch可以捕获到异常,并可以合理地处理异常;throw可以人为抛出异常;无论发生什么,finally语句总会被执行,用户可以在此语句中执行一些清除资源的操作;,72,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号