C程序设计及应用教程第2章数据类型与流程控制.ppt
-
资源ID:70755971
资源大小:212.50KB
全文页数:52页
- 资源格式: PPT
下载积分:11.9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
C程序设计及应用教程第2章数据类型与流程控制.ppt
1 1第第2 2章章 数据类型与流程控制数据类型与流程控制2.1 2.1 数据类型数据类型2.2 2.2 不同数据类型之间的转换不同数据类型之间的转换2.3 2.3 常量与变量常量与变量2.4 2.4 运算符与表达式运算符与表达式2.5 2.5 控制台应用程序与格式化输出控制台应用程序与格式化输出2.6 2.6 C#C#流程控制语句流程控制语句2 22.1 2.1 数据类型数据类型uC#C#数据类型分为两类:值类型和引用类型。数据类型分为两类:值类型和引用类型。值类型值类型:包括简单类型、枚举类型、结构类型、可空类型。包括简单类型、枚举类型、结构类型、可空类型。引用类型引用类型:包括类、接口、数组、委托。包括类、接口、数组、委托。一般把引用类型的变量称为对象。一般把引用类型的变量称为对象。3 3值类型与引用类型区别值类型与引用类型区别堆栈堆56ij实际数据12345Hobjobj4 4值类型和引用类型的区别值类型和引用类型的区别 特性特性值类型值类型引用类型引用类型变量中保存的内容变量中保存的内容实际数据实际数据指向实际数据的引用指针指向实际数据的引用指针内存空间配置内存空间配置堆栈(堆栈(StackStack)受管制的堆(受管制的堆(Managed Managed HeapHeap)内存需求内存需求较少较少较多较多执行效率执行效率较快较快较慢较慢内存释放时间点内存释放时间点执行超过定义变量执行超过定义变量的作用域时的作用域时由垃圾回收机制负责回收由垃圾回收机制负责回收可以为可以为nullnull不可以不可以可以可以5 52.1.2 2.1.2 整型整型 uC#C#提供了八种整型(即计算机组成原理中的提供了八种整型(即计算机组成原理中的“定点数定点数”):):sbytesbyte:1 1字节有符号字节有符号 bytebyte:1 1字节无符号字节无符号 shortshort:2 2字节有符号字节有符号 ushortushort:2 2字节无符号字节无符号 intint:4 4字节有符号,最常用字节有符号,最常用 uintuint:4 4字节无符号字节无符号 longlong:8 8字节有符号字节有符号 ulongulong:8 8 字节无符号字节无符号6 62.1.3 2.1.3 浮点类型浮点类型 floatfloat:4 4字节浮点数,常用。例如:字节浮点数,常用。例如:35.0f35.0fdoubledouble:8 8字节浮点数,常用。例如:字节浮点数,常用。例如:2.7E+232.7E+23decimaldecimal:1616字节浮点数,特殊的浮点数,精度高,适用于金字节浮点数,特殊的浮点数,精度高,适用于金融、货币等需要高精度数值的领域。其类型指定符为融、货币等需要高精度数值的领域。其类型指定符为M M(或(或m m)。)。例如:例如:decimal y=9999999999999999999999999m;decimal y=9999999999999999999999999m;floatfloat和和doubledouble的浮点数格式与计算机组成原理介绍的的浮点数格式与计算机组成原理介绍的IEEE754IEEE754规定的格式相同规定的格式相同7 72.1.4 2.1.4 布尔型布尔型 u 用用boolbool表示,表示,boolbool类型只有两个值类型只有两个值truetrue和和falsefalse。例如:例如:bool isExist=false;bool isExist=false;bool b=(i0&i0&i 100|i 100|i 0)Console.WriteLine(Console.WriteLine(成绩不在成绩不在0-1000-100范围内范围内););3434 elseelse switch(i/10)/switch(i/10)/整除整除 case 10:case 10:Console.Write(Console.Write(满分,满分,););goto case 9;goto case 9;case 9:case 9:Console.WriteLine(Console.WriteLine(优秀优秀););break;break;case 8:case 8:case 7:case 7:Console.WriteLine(Console.WriteLine(良好良好););break;break;case 6:case 6:Console.WriteLine(Console.WriteLine(及格及格););break;break;default:default:Console.WriteLine(Console.WriteLine(不及格不及格););break;break;Console.ReadLine();Console.ReadLine();35352.6.2 2.6.2 循环语句循环语句u 包括:包括:forfor语句语句 whilewhile语句语句 do-whiledo-while语句语句 foreachforeach语句,用于对集合、数组进行操作。语句,用于对集合、数组进行操作。36362.6.2 2.6.2 循环语句(续)循环语句(续)forfor语句语句一般形式:一般形式:for(for(初始值初始值;循环条件循环条件;循环控制循环控制)语句序列语句序列 3737例例.使用使用forfor语句控制循环体语句控制循环体 public static void Main()public static void Main()Console.Clear();Console.Clear();Console.BackgroundColor=ConsoleColor.Blue;Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.Red;Console.ForegroundColor=ConsoleColor.Red;Console.Beep();Console.Beep();for(int i=1;i 10;i+=2)for(int i=1;i 10;i+=2)Console.SetCursorPosition(40-i/2,i);Console.SetCursorPosition(40-i/2,i);for(int j=0;j i;j+)for(int j=0;j i;j+)Console.Write(*);Console.Write(*);Console.WriteLine();Console.WriteLine();Console.ReadLine();Console.ReadLine();38382.6.2 2.6.2 循环语句(续)循环语句(续)whilewhile语句语句一般形式:一般形式:while(while(条件条件)语句序列语句序列 循环体内的程序可能会执行多次,也可能一次也不执行。循环体内的程序可能会执行多次,也可能一次也不执行。39392.6.2 2.6.2 循环语句(续)循环语句(续)do-whiledo-while一般形式:一般形式:dodo 语句序列语句序列 while(while(条件条件););循环体内的程序至少会执行一次,然后再判断条件是否为循环体内的程序至少会执行一次,然后再判断条件是否为truetrue,如果条件为,如果条件为truetrue,则继续循环。,则继续循环。40402.6.2 2.6.2 循环语句循环语句(续续)u foreachforeach语句语句 foreachforeach语句用于逐个提取集合中的元素,并对集合语句用于逐个提取集合中的元素,并对集合中每个元素执行语句序列中操作的场合。一般形式为:中每个元素执行语句序列中操作的场合。一般形式为:foreachforeach (类型类型 标识符标识符 in in 表达式表达式 )语句序列语句序列 注意:循环变量是一个只读型的局部变量。注意:循环变量是一个只读型的局部变量。41412.6.2 2.6.2 循环语句循环语句(续续)判断下列语句是否正确判断下列语句是否正确,并说明原因并说明原因 int myInt=1,2,3;int myInt=1,2,3;foreach(int test in myInt)foreach(int test in myInt)test+;test+;Console.WriteLine(test);Console.WriteLine(test);42422.6.3 2.6.3 跳转语句跳转语句u 1.break1.break语句语句 功能:功能:退出最近的封闭退出最近的封闭switchswitch、whilewhile、do-do-whilewhile、forfor或或foreachforeach语句。语句。格式:格式:break;break;4343【例例】循环接收和输出键盘输入的每一行的值,当接收的循环接收和输出键盘输入的每一行的值,当接收的内容为空字符串时退出。内容为空字符串时退出。using System;using System;namespace BreakExamplenamespace BreakExample public class Program public class Program public static void Main()public static void Main()for(;)for(;)Console.Write(Console.Write(请输入一个字符串(直接回车退出)请输入一个字符串(直接回车退出):);:);string s=Console.ReadLine();string s=Console.ReadLine();if(s=)break;if(s=)break;Console.WriteLine(Console.WriteLine(你输入的是你输入的是:0.,s);:0.,s);Console.ReadLine();Console.ReadLine();44442.6.3 2.6.3 跳转语句跳转语句 (续续)u 2.continue 2.continue语句语句 功能:功能:将控制传递给下一个将控制传递给下一个whilewhile、do-whiledo-while、forfor或或foreachforeach,继续执行下一次循环。,继续执行下一次循环。格式:格式:continue;continue;45452.6.3 2.6.3 跳转语句跳转语句 (续续)u 3.goto 3.goto语句语句仅在下面两种情况下才可能会使用仅在下面两种情况下才可能会使用gotogoto语句:语句:(1 1)用于)用于switchswitch语句中从一个语句中从一个casecase标签转到另一个标签转到另一个casecase标标签处。签处。(2 2)用于直接退出到多重嵌套循环的外部。)用于直接退出到多重嵌套循环的外部。46462.6.3 2.6.3 跳转语句跳转语句 (续续)u 4.return 4.return语句语句 功能:功能:将控制返回到出现将控制返回到出现returnreturn语句的函数成语句的函数成员的调用方。员的调用方。格式:格式:return return 表达式表达式;其中表达式为可选项,如果该函数成员的返回其中表达式为可选项,如果该函数成员的返回类型不为类型不为nullnull,则,则returnreturn语句必须使用表达式返回这语句必须使用表达式返回这个类型的值,否则个类型的值,否则returnreturn语句不能使用表达式。语句不能使用表达式。4747【例例2-92-9】循环与跳转综合举例循环与跳转综合举例 。48482.6.4 2.6.4 异常处理异常处理 1.try-catch 1.try-catch语句语句trytry 语句序列语句序列 catchcatch(异常类型(异常类型 标识符)标识符)异常处理异常处理 在程序运行正常的时候,执行在程序运行正常的时候,执行trytry块内的程序。如果块内的程序。如果trytry块中块中出现了异常,程序就转移到出现了异常,程序就转移到catchcatch块中执行。块中执行。49492.6.4 2.6.4 异常处理异常处理 (续续)2.try-catch-finally 2.try-catch-finally语句语句trytry 语句序列语句序列 catchcatch(异常类型(异常类型 标识符)标识符)异常处理异常处理 finallyfinally 语句序列语句序列 50503.throw3.throw语句语句 格式:格式:throw throw 表达式表达式;抛出表达式的值。抛出表达式的值。注意表达式类型必须是注意表达式类型必须是System.ExceptionSystem.Exception或从或从System.ExceptionSystem.Exception派生的类的类型。派生的类的类型。throwthrow也可以不带表达式,不带表达式的也可以不带表达式,不带表达式的throwthrow语句语句只能用在只能用在catchcatch块中,在这种情况下,它重新抛出当前正块中,在这种情况下,它重新抛出当前正在由在由catchcatch块处理的异常。块处理的异常。2.6.4 2.6.4 异常处理异常处理 (续续)5151例例.异常处理异常处理 using System;using System;namespace TryCatchExamplenamespace TryCatchExample class Program class Program static void F()static void F()try try G();G();catch(Exception err)catch(Exception err)Console.WriteLine(Console.WriteLine(方法方法F F中捕获到中捕获到:+:+err.Message);err.Message);5252 /重新抛出当前正在由重新抛出当前正在由catch catch 块处理的异常块处理的异常errerr throw;throw;static void G()static void G()throw new Exception(throw new Exception(方法方法G G中抛出的异常。中抛出的异常。););static void Main()static void Main()try try F();F();catch(Exception err)catch(Exception err)Console.WriteLine(Console.WriteLine(方法方法MainMain中捕获到中捕获到:+:+err.Message);err.Message);Console.ReadLine();Console.ReadLine();