收藏 分享(赏)

第2章 C#语言基础.ppt

上传人:kpmy5893 文档编号:9658424 上传时间:2019-08-21 格式:PPT 页数:65 大小:916.50KB
下载 相关 举报
第2章 C#语言基础.ppt_第1页
第1页 / 共65页
第2章 C#语言基础.ppt_第2页
第2页 / 共65页
第2章 C#语言基础.ppt_第3页
第3页 / 共65页
第2章 C#语言基础.ppt_第4页
第4页 / 共65页
第2章 C#语言基础.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、,C#程序设计及应用,主讲教师:唐大仕 ,第2章 c#语言基础 数据运算、流程控制、数组,本章内容,第1节 数据类型、变量与常量 第2节 运算符与表达式 第3节 流程控制语句 第4节 数组,第1节 数据类型、变量与常量,变量,命名变量名要遵守如下的规则: (1)不能是C#关键字。 (2 ) 由字母、数字、下划线构成。 (3)第一个字符必须是字母或下划线。 (4)不要太长,一般不超过31个字符为宜。 (5)变量名最好不要与库函数名、类名相同。,注:C#是大小写敏感的,常量,变量是常数或代表固定不变值的名字。程序中如果想让变量的内容初始化后一直保持不变,可以定义一个常量。,C#数据类型,C#的数据

2、类型分值类型(Value Type)和引用类型(Reference Type)两大类值类型包括 简单类型(Simple Type) 结构类型(Struct Type) 枚举类型(Enum Type) 引用类型包括 类类型(Class Type) 接口类型(Interface Type) 委托类型(Delegate) 数组类型(Array Type)值类型与引用类型的区别 前者一般是存在栈中,后者则是有一个引用变量,一个对象内存(存入堆中),简单类型,整数类型 有符号 sbyte short int long 如 87L,0x1F 无符号 byte ushort uint ulong 如 87U

3、L 字符类型 char 如a uA0B1 n (回车) 实数类型 float 如 3.14F double 如 3.14 3.14D (后面这个D可以省略) 十进制类型 Decimal 如 120.50M 布尔类型 bool 如 true false (小写),字符串类型,String 是对象类型,但对字符串常量有特殊处理 “abcd1234“ “abcd Pqrst“,等价类型,注意:每种数据类型都有一个关键词 int 相当于 System.Int32 double 相当于 System.Double bool 相当于 System.Boolean string 相当于 System.Str

4、ing (如果using System,则 string相当于String),使用数据类型要注意,针对VB程序员 int 为32位长 字符(char)与字符串不同 定义变量 int a, b; float pi = 3.14F; 类型是严格的,比VB严格,C#基本数据类型,C#中定义了四类/八种基本数据类型 逻辑型- boolean 文本型- char 整数型- byte, short, int, long 浮点数型- float, double,逻辑型,boolean类型适于逻辑运算,一般用于程序流程控制 boolean类型数据只允许取值true或false,不可以0或非0的整数替代true

5、和false。 用法举例:boolean b = false;if(b=true) /do something,文本型,char型数据用来表示通常意义上“字符” 字符常量是用单引号括起来的单个字符 char c = A; C#字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示 char c1 = u0061; C#语言中还允许使用转义字符来将其后的字符转变为其它的含义 char c2 = n; /代表换行符,转义符,转 义 字 符 含 义 ddd 1到3位八进制数所表示的字符(ddd) uxxxx 1到4位十六进制数所表示的字符(xxxx) 单引号字符 “ 双引号字符

6、 反斜杠字符 r 回车 n 换行 f 走纸换页 t 横向跳格 b 退格,整数类型(1),C#各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证C#程序的可移植性 :,整数类型(2),C#语言整型常量的三种表示形式: 十进制整数,如12, -314, 0。 八进制整数,要求以0开头,如012 十六进制数,要求0x或0X开头,如0x12 C#语言的整型常量默认为int型,如:int i =3; 声明long型常量可以后加 l 或 L ,如:long l = 3L;,浮点型(1),C#浮点类型有固定的表数范围和字段长度,浮点型(2),C#浮点类型常量有两种表示形式 十进制数形式,

7、必须含有小数点,例如:3.14 314.0 .314 科学记数法形式,如3.14e2 3.14E2 314E2 C#浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:double d = 3.14;float f = 3.14f;,基本数据类型变量声明和赋值,public class Test public static void main (String args ) boolean b = true; /声明boolean型变量并赋值 int x, y=8; / 声明int型变量float f = 4.5f; / 声明float型变量并赋值doub

8、le d = 3.1415; /声明double型变量并赋值char c; /声明char型变量c = u0031; /为char型变量赋值 x = 12; /为int型变量赋值 ,标识符,任何一个变量、常量、方法、对象和类都需要有名字,这些名字就是标识符。标识符可以由编程者自由指定,但是需要遵循一定的语法规定。 标识符要满足如下的规定: (1)标识符可以由字母、数字和下划线(_)、美元符号($)组合而成; (2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。 在实际应用标识符时,应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义,这样程序的可读性会更好。 同时,应注意

9、C#是大小写敏感的语言。,第2节 运算符与表达式,运算符,算术运算符: +,*,/,%,+, 关系运算符: ,=, 赋值运算符: = 扩展赋值运算符:+=,=,*=,/= 字符串连接运算符: +,常用运算符,算术运算符 + - * / % 其中%表示求余,没有乘方运算 + - 关系运算符 = = = != 注意等于及不等于的写法,与VB不同 逻辑运算符 与 & 或 | 非 ! 异或 条件与 & 条件或 |,常用运算符(续),赋值 = += -= *= 等等 注: s+=a 相当于 s=s+a 条件运算符 z?a:b 如 m = ab ? a : b 相当于VB中的IIF(),算术运算符,+,*

10、,/,%,+, 有关 / 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*2a=5; b = + a *2;a=5; b = a+ *2; 不是乘方,字符串连接运算符 +,“+“ 除用于算术加法运算外,还可用于对字符串进行连接操作int i = 300 +5;string s = “hello, “ + “world!“; “+“运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再

11、进行连接string s = “hello, “ +300 + 5 + “号“;/输出:hello, 3005号,逻辑运算符(1),逻辑运算符功能!- 逻辑非 & - 逻辑与 | - 逻辑或 - 逻辑异或 &- 短路与 | - 短路或 逻辑运算符功能说明:,逻辑运算符(2),短路(short-circuit)逻辑运算符应用,位运算符,位运算符功能 - 取反 & - 按位与 | - 按位或 - 按位异或 右移 位运算符功能说明:,&,|,赋值运算符(1),赋值运算符= 当“=”两侧的数据类型不一致时,可以适用默认类型转换或强制类型转换(casting)原则进行处理long l = 100; in

12、t i = (int)l; 特例:可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围byte b = 12; /合法byte b = 4096; /非法,赋值运算符(2),扩展赋值运算符,字符串连接运算符 +,“+“ 除用于算术加法运算外,还可用于对字符串进行连接操作int i = 300 +5;String s = “hello, “ + “world!“; “+“运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接int i = 300 +5;String s = “

13、hello, “ + i + “号“; /输出:hello, 305号编程提示:字符串与C语言中的字符串有很大的不同,表达式,表达式是符合一定语法规则的运算符和操作数的序列 a5.0 + a(a-b)*c-4i30 & i%10!=0 表达式的类型和值 对表达式中操作数进行运算得到的结果称为表达式的值 表达式的值的数据类型即为表达式的类型 表达式的运算顺序 首先应按照运算符的优先级从高到低的顺序进行 优先级相同的运算符按照事先约定的结合方向进行,表达式中的类型转换,当有不同种类的混合运算时: intlongfloatdouble (所有的byte, short, char 等转为int ),运

14、算符优先级与结合性,编程提示,类型的转换 字符串转成数值: double.Parse( s ) int.Parse(s) 数字转成字符串: 10.ToString()“” + 10 使用Convert Convert.ToInt32( textbox1.Text) Convert.ToDouble( “123.45”) Convert.ToDateTime( “2009-10-01 14:00”),第3节 流程控制语句,结构化程序设计的三种基本流程,简单语句,最简单的语句是方法调用语句及赋值语句,是在方法调用或赋值表达式后加一个分号(;) 如:System.out.println(“Hello

15、 World”);a = 3+x;b = a0?a:-a;s = TextBox1.getText();d = Integer.parseInt( s );,分支语句-if,if(条件表达式)语句块; / if分支 else语句块; / else分支例:LeapYear.cs,分支语句- switch语句,switch(exp)case const1:statement1;break;case const2:statement2;break; case constN:statementN;break;default:statement_dafault;break; 例:GradeLevel.c

16、s例:AutoScore.cs自动出题并判分编程提示:必须有break;表达式可以是整数或字符串,循环语句,循环语句,循环语句功能 在循环条件满足的情况下,反复执行特定代码 循环语句的四个组成部分 初始化部分(init_statement) 循环条件部分(test_exp) 循环体部分(body_statement) 迭代部分(alter_statement)加上”结束后处理”成为”循环的五要素 循环语句分类 for 循环 while 循环 do/while 循环,for 循环语句,语法格式for (init_statement; test_exp; alter_statement)body_

17、statement 应用举例public class ForLoop public static void main(String args)int result = 0;for(int i=1; i=100; i+) result += i;System.out.println(“result=“ + result);,while 循环语句,语法格式init_statementwhile( test_exp)body_statement;alter_statement; 应用举例public class WhileLoop public static void main(String arg

18、s)int result = 0;int i=1;while(i=100) result += i;i+;System.out.println(“result=“ + result);,do/while 循环语句,语法格式init_statementdobody_statement;alter_statement;while( test_exp); 应用举例public class WhileLoop public static void main(String args)int result = 0, int i=1;doresult += i;i+;while(i=100);System.

19、out.println(“result=“ + result);,跳转语句,常用的跳转语句: break语句 结束循环(相当于VB中的Exit Do,Exit For) continue语句 进入下一次循环 goto语句 跳转到某个语句标号 trycatch语句 异常的捕获,Goto语句及其弊端,有关Goto语句的争论 C#中的goto语句,第4节 数组,数组概述,数组是多个相同类型数据的组合,实现对这些数据的统一管理 数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量 数组中的元素可以是任何数据类型,包括基本类型和引用类型,一维数组声明,一维数组的声明方

20、式:type var;例如:int a1;double b;Mydate c; C#语言中声明数组时不能指定其长度(数组中元素的个数),例如:int a5; /非法,数组初始化,动态初始化数组定义与为数组元素分配空间并赋值的操作分开进行。,MyDate dates; dates = new MyDate3; dates0 = new MyDate(22, 7, 1964); dates1 = new MyDate(1, 1, 2000); dates2 = new MyDate(22, 12, 1964);,int a; a = new int3; a0 = 3; a1 = 9; a2 = 8

21、;,数组初始化,静态初始化:在定义数组的同时就为数组元素分配空间并赋值。,int a = 3, 9, 8;MyDate dates = new MyDate(22, 7, 1964),new MyDate(1, 1, 2000),new MyDate(22, 12, 1964) ;,注:最后可以多一个逗号。如3,9,8,数组元素的默认初始化,数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。例如:int a= new int5; /a3则是0,数组元素的引用,数组元素的引用方式:arrayNameindexindex为数组元

22、素下标,可以是整型常量或整型表达式。如a3 , bi , c6*i; 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 n-1; 每个数组都有一个属性Length指明它的长度,例如:a.Length 指明数组a的长度(元素个数);,多维数组 (1),二维数组举例:int , a = 1,2,3,4,0,5,6,7;,多维数组 (2),C#中多维数组被做为数组的数组处理 C#中多维数组的声明和初始化应按从高维到低维的顺序进行int t = new int 4;t0 = new int5;t1 = new int5;int t1 = new int 4; /非法,多维数组 (3),C#中

23、多维数组不必须是规则矩阵形式int tt = new int4; tt0 = new int2;tt1 = new int4;tt2 = new int6;tt3 = new int8;int tt = new int45;,复制数组,Array.Copy方法提供了数组元素复制功能:/源数组int source = 1, 2, 3, 4, 5, 6 ;/ 目的数组int dest = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ;/ 复制源数组中从下标0开始的source.length个元素到/ 目的数组,从下标0的位置开始存储。Array.Copy( source, 0, d

24、est, 0, 5 );,foreach语句,foreach可以方便地处理数组、集合中各元素 如: int ages = new int10; / foreach( int age in ages ) / ,练习C#语言基础,参考LanguageBasic目录下的示例 作业请见教学网站,本章小结,本章内容 数据类型;运算符与表达式;流程控制语句;数组 知识要点 常见的数据类型 ;字面常量的书写 值类型与引用类型 常用的算术运算、关系运算、位运算、逻辑运算、连接运算 运算符的优先级 if/switch语句 for/while/do语句, 循环的五要素 break/continue/goto语句 数组的定义、初始化 foreach语句,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报