《C程序设计及应用教程数据类型与流程控制实用.pptx》由会员分享,可在线阅读,更多相关《C程序设计及应用教程数据类型与流程控制实用.pptx(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、值类型与引用类型区别堆栈堆56ij实际数据12345Hobjobj第1页/共51页值类型和引用类型的区别 特性特性值类型值类型引用类型引用类型变量中保存的内容变量中保存的内容实际数据实际数据指向实际数据的引用指针指向实际数据的引用指针内存空间配置内存空间配置堆栈(堆栈(StackStack)受管制的堆(受管制的堆(Managed Managed HeapHeap)内存需求内存需求较少较少较多较多执行效率执行效率较快较快较慢较慢内存释放时间点内存释放时间点执行超过定义变量执行超过定义变量的作用域时的作用域时由垃圾回收机制负责回收由垃圾回收机制负责回收可以为可以为nullnull不可以不可以可以可
2、以第2页/共51页2.1.2 2.1.2 整型 uC#提供了八种整型(即计算机组成原理中的“定点数”):sbyte:1字节有符号 byte:1字节无符号 short:2字节有符号 ushort:2字节无符号 int:4字节有符号,最常用 uint:4字节无符号 long:8字节有符号 ulong:8 字节无符号第3页/共51页2.1.3 2.1.3 浮点类型 floatfloat:4 4字节浮点数,常用。例如:字节浮点数,常用。例如:35.0f35.0fdoubledouble:8 8字节浮点数,常用。例如:字节浮点数,常用。例如:2.7E+232.7E+23decimaldecimal:16
3、16字节浮点数,特殊的浮点数,精度高,字节浮点数,特殊的浮点数,精度高,适用于金融、货币等需要高精度数值的领域。其类型指定符为M(或m)。例如:decimal y=9999999999999999999999999m;floatfloat和和doubledouble的浮点数格式与计算机组成原理介绍的的浮点数格式与计算机组成原理介绍的IEEE754IEEE754规定的格式相同规定的格式相同第4页/共51页2.1.4 2.1.4 布尔型 u 用bool表示,bool类型只有两个值true和false。例如:bool isExist=false;bool b=(i0&i 100|i 0)Consol
4、e.WriteLine(成绩不在0-100范围内);第31页/共51页 else switch(i/10)/整除 case 10:Console.Write(满分,);goto case 9;case 9:Console.WriteLine(优秀);break;case 8:case 7:Console.WriteLine(良好);break;case 6:Console.WriteLine(及格);break;default:Console.WriteLine(不及格);break;Console.ReadLine();第32页/共51页2.6.2 2.6.2 循环语句u 包括:for语句
5、while语句 do-while语句 foreach语句,用于对集合、数组进行操作。第33页/共51页2.6.2 2.6.2 循环语句(续)for语句一般形式:for(初始值;循环条件;循环控制)语句序列第34页/共51页例.使用forfor语句控制循环体 public static void Main()Console.Clear();Console.BackgroundColor=ConsoleColor.Blue;Console.ForegroundColor=ConsoleColor.Red;Console.Beep();for(int i=1;i 10;i+=2)Console.Se
6、tCursorPosition(40-i/2,i);for(int j=0;j i;j+)Console.Write(*);Console.WriteLine();Console.ReadLine();第35页/共51页2.6.2 2.6.2 循环语句(续)while语句一般形式:while(条件)语句序列 循环体内的程序可能会执行多次,也可能一次也不执行。第36页/共51页2.6.2 2.6.2 循环语句(续)do-while一般形式:do 语句序列 while(条件);循环体内的程序至少会执行一次,然后再判断条件是否为true,如果条件为true,则继续循环。第37页/共51页2.6.2
7、2.6.2 循环语句(续)u foreach语句 foreach语句用于逐个提取集合中的元素,并对集合中每个元素执行语句序列中操作的场合。一般形式为:foreach(类型 标识符 in 表达式)语句序列 注意:循环变量是一个只读型的局部变量。第38页/共51页2.6.2 2.6.2 循环语句(续)判断下列语句是否正确,并说明原因 int myInt=1,2,3;foreach(int test in myInt)test+;Console.WriteLine(test);第39页/共51页2.6.3 2.6.3 跳转语句u 1.break语句 功能:退出最近的封闭switch、while、do
8、-while、for或foreach语句。格式:break;第40页/共51页【例】循环接收和输出键盘输入的每一行的值,当接收的内容为空字符串时退出。using System;namespace BreakExample public class Program public static void Main()for(;)Console.Write(请输入一个字符串(直接回车退出):);string s=Console.ReadLine();if(s=)break;Console.WriteLine(你输入的是:0.,s);Console.ReadLine();第41页/共51页2.6.3
9、2.6.3 跳转语句 (续)u 2.continue语句 功能:将控制传递给下一个while、do-while、for或foreach,继续执行下一次循环。格式:continue;第42页/共51页2.6.3 2.6.3 跳转语句 (续)u 3.goto语句仅在下面两种情况下才可能会使用goto语句:(1)用于switch语句中从一个case标签转到另一个case标签处。(2)用于直接退出到多重嵌套循环的外部。第43页/共51页2.6.3 2.6.3 跳转语句 (续)u 4.return语句 功能:将控制返回到出现return语句的函数成员的调用方。格式:return 表达式;其中表达式为可选
10、项,如果该函数成员的返回类型不为null,则return语句必须使用表达式返回这个类型的值,否则return语句不能使用表达式。第44页/共51页【例2-9】循环与跳转综合举例。第45页/共51页2.6.4 2.6.4 异常处理 1.try-catch语句try 语句序列catch(异常类型 标识符)异常处理 在程序运行正常的时候,执行try块内的程序。如果try块中出现了异常,程序就转移到catch块中执行。第46页/共51页2.6.4 2.6.4 异常处理 (续)2.try-catch-finally语句try 语句序列catch(异常类型 标识符)异常处理finally 语句序列第47页
11、/共51页3.throw语句 格式:throw 表达式;抛出表达式的值。注意表达式类型必须是System.Exception或从System.Exception派生的类的类型。throw也可以不带表达式,不带表达式的throw语句只能用在catch块中,在这种情况下,它重新抛出当前正在由catch块处理的异常。2.6.4 2.6.4 异常处理异常处理 (续续)第48页/共51页例.异常处理 using System;namespace TryCatchExample class Program static void F()try G();catch(Exception err)Console.WriteLine(方法F中捕获到:+err.Message);第49页/共51页/重新抛出当前正在由catch 块处理的异常err throw;static void G()throw new Exception(方法G中抛出的异常。);static void Main()try F();catch(Exception err)Console.WriteLine(方法Main中捕获到:+err.Message);Console.ReadLine();第50页/共51页感谢您的欣赏!第51页/共51页
限制150内