C#程序设计及应用教程 第2版 教学课件 ppt 马骏 第2章 数据类型与流程控制

上传人:E**** 文档编号:89342996 上传时间:2019-05-23 格式:PPT 页数:52 大小:363KB
返回 下载 相关 举报
C#程序设计及应用教程 第2版  教学课件 ppt 马骏 第2章 数据类型与流程控制_第1页
第1页 / 共52页
C#程序设计及应用教程 第2版  教学课件 ppt 马骏 第2章 数据类型与流程控制_第2页
第2页 / 共52页
C#程序设计及应用教程 第2版  教学课件 ppt 马骏 第2章 数据类型与流程控制_第3页
第3页 / 共52页
C#程序设计及应用教程 第2版  教学课件 ppt 马骏 第2章 数据类型与流程控制_第4页
第4页 / 共52页
C#程序设计及应用教程 第2版  教学课件 ppt 马骏 第2章 数据类型与流程控制_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《C#程序设计及应用教程 第2版 教学课件 ppt 马骏 第2章 数据类型与流程控制》由会员分享,可在线阅读,更多相关《C#程序设计及应用教程 第2版 教学课件 ppt 马骏 第2章 数据类型与流程控制(52页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据类型与流程控制,2.1 数据类型 2.2 不同数据类型之间的转换 2.3 常量与变量 2.4 运算符与表达式 2.5 控制台应用程序与格式化输出 2.6 C#流程控制语句,2.1 数据类型,C#数据类型分为两类:值类型和引用类型。 值类型: 包括简单类型、枚举类型、结构类型、可空类型。 引用类型: 包括类、接口、数组、委托。 一般把引用类型的变量称为对象。,值类型与引用类型区别,堆栈,堆,5,6,i,j,实际数据,12345H,obj,值类型和引用类型的区别,2.1.2 整型,C#提供了八种整型(即计算机组成原理中的“定点数”): sbyte:1字节有符号 byte: 1字节无符号

2、 short: 2字节有符号 ushort:2字节无符号 int: 4字节有符号,最常用 uint: 4字节无符号 long: 8字节有符号 ulong:8 字节无符号,2.1.3 浮点类型,float:4字节浮点数,常用。例如:35.0f double:8字节浮点数,常用。例如:2.7E+23 decimal:16字节浮点数,特殊的浮点数,精度高,适用于金融、货币等需要高精度数值的领域。其类型指定符为M(或m)。 例如: decimal y = 9999999999999999999999999m; float和double的浮点数格式与计算机组成原理介绍的IEEE754规定的格式相同,2.

3、1.4 布尔型,用bool表示,bool类型只有两个值true和false。 例如: bool isExist = false; bool b = (i0 /错误,2.1.5 字符型与字符串类型,char型,为单个Unicode字符,字符型常量必须用单引号引起来 。 例如: char cha; 如果是字符串(单个字符的组合),对应的类型为string。string类型的常量用双引号将字符串引起来。 例如:string str=“hello”; char和string类型的常量均可以使用转义符。,2.2 值类型之间的数据转换,有两种转换方式:隐式转换与显式转换; 如果是不同值类型之间的转换,可以

4、使用Convert类。,2.2.1 隐式转换和显式转换,隐式转换 从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以用隐式转换。 例如: int k = 1; long i = 2; i = k; /隐式转换,2.2.1 隐式转换和显式转换,显式转换 如: long k = 5000; int i = (int)k 所有的隐式转换也都可以采用显式转换的形式来表示。如: int i = 10; long j = (long)i; 将大范围类型的数据转换为小范围类型的数据的时候,必须特别谨慎,因为此时有丢失数据的危险。,2.2.2 装箱与拆箱,Object类型:所有其他引用类型的基类。

5、 装箱:将值类型转换为object类型 int i=123; object o = i; 拆箱:将object类型转换为值类型 int k = (int)o;,2.3 常量和变量,C#中提供2种类型的常量: 使用const关键字声明 const常量是在编译时设置其值并且永远不能更改其值的字段,在对程序进行编译的时候,编译器会把所有const常量全部替换为常数。 使用readonly关键字声明 readonly关键字在程序运行期间只能初始化“一次”的字段,可以在声明语句中初始化该字段,也可以在构造函数中初始化该字段。初始化以后,用readonly声明的字段的值就不能再更改。 二者区别: read

6、only常量运行时初始化,const常量编译时初始化。 const常量只能在声明中赋值,readonly常量既可以在声明中赋值,也可以在构造函数中赋值。,变量,变量用来表示一个数值、一个字符串值或者一个类的对象。变量存储的值可能会发生更改,但变量名称保持不变。 C#定义了7类变量,分别是:静态变量、实例变量、数组元素、值参数、引用参数、输出参数和局部变量。 class A public static int x; int y; void F(int v, int a, ref int b, out int c) int i = 1; c = a + b+; ,变量,声明变量举例: int a

7、= 100; /声明一个整型变量a,并赋初值为100 也可以采用先定义、后赋值的方式,例如: int a; /声明一个整型变量a a = 100; /为整型变量a赋值为100 另外,也可以把几个变量声明和初始化用一条语句完成,各个变量之间用逗号分隔,例如: int a = 100, b, c = 200,d; /声明整型变量a、b、c、d,并将a赋值100,c赋值200,匿名类型的变量,匿名类型的变量就是程序员不必指定“局部”变量的类型,统统用var来表示类型即可。 在LINQ表达式或者foreach语句中,使用匿名类型的变量比较方便。,2.4 运算符和表达式,C#提供了3大类运算符: 一元运

8、算符:带有一个操作数的运算符称为“一元”运算符,例如,i+。 二元运算符:带有两个操作数的运算符称为“二元”运算符,例如,x + y。 三元运算符:带有三个操作数的运算符称为“三元”运算符,在C#中,只存在1个三元运算符,即条件运算符“?:”。 表达式 C#的表达式与C+和Java类似。,2.5 控制台应用程序与格式化输出,控制台(Console类) 控制台输出 Console.Write (); Console.WriteLine(); 控制台输入 Console.ReadKey(); 标准输入流读取用户按下的字符或功能键。 Console.ReadLine(); 从标准输入流读取一行字符。

9、,字符串的格式化输出,格式输出的一般形式为 N , M: 格式码 其中, :表示其中的内容为可选项。 N:从零开始的整数,表示第几个参数。 M:可选整数,表示最小长度。若参数N的长度小于M,就用空格填充。如果M为负,则左对齐;如果M为正,则右对齐;如果未指定M,则默认为零。 格式码:可选的格式化代码字符串。,常用格式码及举例,字符串的格式化输出,对于字符串来说,可以直接利用格式化输出得到希望的格式,例如: string s = string.Format(“0, 30“, ); /s得到的结果为30个空格的字符串 string s1 = string.Format(“0, -20“, “15“

10、); /s1得到的结果为左对齐长度为20的字符串,数字的格式化输出,常用格式举例: 1) 在ToString中使用d格式。 int i = 12345; / i.ToString(“d“)表示将i按照实际整数宽度转换为字符串 string str = i.ToString(“d“); Console.WriteLine(str); /结果12345 / i.ToString(“d8“)表示将i转换为字符串,宽度为8位,不够8位左边用0填充 string str1 = i.ToString(“d8“); Console.WriteLine(str1); /结果00012345,数字的格式化输出,

11、2) 在string.Format中使用d格式。 int i = 123; double j = 123.45; / 0,7:d表示第0个参数,宽度7位,不够7位左边用空格填充,d表示十进制整数 string s1 = string.Format(“the value is 0,7:d“,i); Console.WriteLine(s1); /结果 the value is 123 / 0,7:f3表示第0个参数,总宽度7位,其中小数部分占3位,不够7位左边填空格 / f表示浮点数 string s2 = string.Format(“the value is 0,7:f3“,j); Cons

12、ole.WriteLine(s2); /结果 the value is 123.450,数字的格式化输出,3) 在ToString中使用f格式。 double i = 12345.6789; / f2表示浮点数小数部分为2位,多余部分四舍五入,不够2位时右边补零 string str = i.ToString(“f2“); Console.WriteLine(str); /结果 12345.68 string str1 = i.ToString(“f6“); Console.WriteLine(str1); /结果 12345.678900,数字的格式化输出,4) 在ToString中使用n格

13、式。 double i = 12345.6789; / n表示整数部分从小数点向左每3位用逗号分隔开,小数部分2位,多余部分四舍五入 string str = i.ToString(“n“); Console.WriteLine(str); /结果 12,345.68 / n4表示整数部分从小数点向左每3位用逗号分隔开,小数部分4位,多余部分四舍五入 string str1 = i.ToString(“n4“); Console.WriteLine(str1); /结果 12,345.6789,数字的格式化输出,5) 在ToString中使用p格式。 double i = 0.126; / p

14、表示百分数形式 string s = string.Format(“the value is 0:p“,i); Console.WriteLine(s); /结果 the value is 12.60% string str = i.ToString(“p“); Console.WriteLine(str); /结果 12.60%,日期和时间的格式化输出,DateTime dt = new DateTime(2006,5,25); / yy表示年占两位,M表示月占1位,超出1位按实际位数 / d表示日占1位,超出1位按实际位数 string str = dt.ToString(“yy.M.d“

15、); Console.WriteLine(str); /结果 06.5.25 /yyyy表示年占4位,M表示月占1位,超出1位按实际位数,其他按原字符输出 string str1 = dt.ToString(“yyyy年M月“); Console.WriteLine(str1); /结果 2006年5月,2.6 C#流程控制语句,流程控制的形式: 顺序 分支 循环 异常捕获 如果一个逻辑块包含两条或两条以上的语句序列,必须使用大括号将语句括起来。,2.6.1 条件分支语句,if语句:根据布尔表达式的值(true或者false)选择要执行的语句序列,使用时要注意else应和最近的if语句匹配。

16、三种形式: if ifelse ifelse ifelse,2.6.1 条件分支语句(续),switch 语句也叫case语句 switch语句与C+和Java均不完全相同。 switch语句常用形式为: switch (表达式) case 常量表达式1: 语句序列1 case 常量表达式2: 语句序列2 default: 语句序列 ,2.6.1 条件分支语句(续),常量表达式 switch条件表达式的值和每个case后的常量表达式可以是string、int、char、enum或其它值类型。 语句序列 每个case后的语句序列可以用大括号括起来,也可以不用,但是每个case块的最后一句一定要是break语句,或者是goto语句。 switch语句的执行顺序 a) 如果switch语句的条件表达式的值和某一个case标记后指定的值相等,则转到该case标记后的语句序列执行

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号