第2章数据类型与流程控制_第1页
第2章数据类型与流程控制_第2页
第2章数据类型与流程控制_第3页
第2章数据类型与流程控制_第4页
第2章数据类型与流程控制_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内容提要2.1 数据类型数据类型2.2 不同数据类型之间的转换不同数据类型之间的转换2.3 常量与变量常量与变量2.4 运算符与表达式运算符与表达式2.5 控制台应用程序与格式化输出控制台应用程序与格式化输出2.6 c#流程控制语句流程控制语句2 2预期目标掌握掌握c#的基本语法的基本语法3 32.1 数据类型c#数据类型分为两类:值类型和引用类型。数据类型分为两类:值类型和引用类型。值类型:包括简单类型、枚举类型、结构类型、可空值类型:包括简单类型、枚举类型、结构类型、可空类型。类型。引用类型:包括类、接口、数组、委托。引用类型:包括类、接口、数组、委托。一般把引用类型的变量称为对象。一般把

2、引用类型的变量称为对象。4 4值类型与引用类型区别堆栈堆56ij实际数据12345hobjobj5 5值类型和引用类型的区别 特性值类型引用类型变量中保存的内容实际数据指向实际数据的引用指针内存空间配置堆栈(stack)受管制的堆(managed heap)内存需求较少较多执行效率较快较慢内存释放时间点执行超过定义变量的作用域时由垃圾回收机制负责回收可以为null不可以可以6 62.1.2 整型 c#提供了八种整型(即计算机组成原理中的提供了八种整型(即计算机组成原理中的“定定点数点数”):):sbyte:1字节有符号字节有符号byte: 1字节无符号字节无符号short: 2字节有符号字节有

3、符号ushort:2字节无符号字节无符号int: 4字节有符号,最常用字节有符号,最常用uint: 4字节无符号字节无符号long: 8字节有符号字节有符号ulong:8 字节无符号字节无符号7 72.1.3 浮点类型 float:4字节浮点数,常用。例如:字节浮点数,常用。例如:35.0fdouble:8字节浮点数,常用。例如:字节浮点数,常用。例如:2.7e+23decimal:16字节浮点数,特殊的浮点数,精度字节浮点数,特殊的浮点数,精度高,适用于金融、货币等需要高精度数值的领域。高,适用于金融、货币等需要高精度数值的领域。其类型指定符为其类型指定符为m(或(或m)。)。例如:例如:

4、decimal y = 9999999999999999999999999m;float和和double的浮点数格式与计算机组成原理介的浮点数格式与计算机组成原理介绍的绍的ieee754规定的格式相同规定的格式相同8 82.1.4 布尔型 用用bool表示,表示,bool类型只有两个值类型只有两个值true和和false。例如:例如:bool isexist = false;bool b = (i0 & i 100 | i 0) console.writeline(成绩不在0-100范围内); else switch (i / 10) /整除 case 10: console.write(满分

5、,); 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(); 35352.6.2 循环语句 包括:包括:for语句语句while语句语句do-while语句语句foreach语句,用于对集合、数组进行操作。语句,用于对集合、数组进行操作。 36362.6.2 循环

6、语句(续)for语句语句一般形式:一般形式:for (初始值;循环条件;循环控制) 语句序列3737例.使用for语句控制循环体 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.setcursorposition(40 - i / 2, i); for (int j = 0;

7、 j i; j+) console.write(*); console.writeline(); console.readline(); 38382.6.2 循环语句(续)while语句语句一般形式:一般形式:循环体内的程序可能会执行多次,也可能一次也循环体内的程序可能会执行多次,也可能一次也不执行。不执行。while (条件)语句序列39392.6.2 循环语句(续)do-while一般形式:一般形式:循环体内的程序至少会执行一次,然后再判断条循环体内的程序至少会执行一次,然后再判断条件是否为件是否为true,如果条件为,如果条件为true,则继续循环。,则继续循环。 do 语句序列whil

8、e (条件); 40402.6.2 循环语句(续) foreach语句语句foreach语句用于逐个提取集合中的元素,并对集合中语句用于逐个提取集合中的元素,并对集合中每个元素执行语句序列中操作的场合。一般形式为:每个元素执行语句序列中操作的场合。一般形式为:注意:循环变量是一个只读型的局部变量。注意:循环变量是一个只读型的局部变量。foreach ( 类型 标识符 in 表达式 ) 语句序列41412.6.2 循环语句(续)判断下列语句是否正确判断下列语句是否正确,并说明原因并说明原因 int myint=1,2,3; foreach(int test in myint) test+; co

9、nsole.writeline(test); 42422.6.3 跳转语句1.break语句语句功能:退出最近的封闭功能:退出最近的封闭switch、while、do-while、for或或foreach语句。语句。格式:格式:break;4343示例【例例】循环接收和输出键盘输入的每一行的值,循环接收和输出键盘输入的每一行的值,当接收的内容为空字符串时退出。当接收的内容为空字符串时退出。 using system;namespace breakexample public class program public static void main() for (; ; ) console.w

10、rite(请输入一个字符串(直接回车退出):); string s = console.readline(); if (s = ) break; console.writeline(你输入的是: 0., s); console.readline(); 44442.6.3 跳转语句 (续)2.continue语句语句功能:将控制传递给下一个功能:将控制传递给下一个while、do-while、for或或foreach,继续执行下一次循环。继续执行下一次循环。格式:格式:continue ;3.goto语句语句仅在下面两种情况下才可能会使用仅在下面两种情况下才可能会使用goto语句:语句:(1)用

11、于)用于switch语句中从一个语句中从一个case标签转到另一个标签转到另一个case标签处。标签处。(2)用于直接退出到多重嵌套循环的外部。)用于直接退出到多重嵌套循环的外部。45452.6.3 跳转语句 (续)4.return语句语句功能:将控制返回到出现功能:将控制返回到出现return语句的函数成员的调语句的函数成员的调用方。用方。格式:格式:return 表达式表达式;其中表达式为可选项,如果该函数成员的返回类其中表达式为可选项,如果该函数成员的返回类型不为型不为null,则,则return语句必须使用表达式返回语句必须使用表达式返回这个类型的值,否则这个类型的值,否则return

12、语句不能使用表达式。语句不能使用表达式。46462.6.4 异常处理 1.try-catch语句语句在程序运行正常的时候,执行在程序运行正常的时候,执行try块内的程序。如块内的程序。如果果try块中出现了异常,程序就转移到块中出现了异常,程序就转移到catch块中块中执行。执行。 try 语句序列catch(异常类型 标识符) 异常处理47472.6.4 异常处理 (续) 2.try-catch-finally语句语句try 语句序列catch(异常类型 标识符) 异常处理finally 语句序列48482.6.4 异常处理 (续)3.throw语句语句格式:格式:throw 表达式表达式;

13、抛出表达式的值。抛出表达式的值。注意表达式类型必须是注意表达式类型必须是system.exception或从或从system.exception派生的类的类型。派生的类的类型。throw也可以不带表达式,不带表达式的也可以不带表达式,不带表达式的throw语语句只能用在句只能用在catch块中,在这种情况下,它重新块中,在这种情况下,它重新抛出当前正在由抛出当前正在由catch块处理的异常。块处理的异常。 4949例.异常处理 using system;namespace trycatchexample class program static void f() try g(); catch (exception err) console.writeline(方法f中捕获到: + err.message); /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论