基本数据类型与表达式

上传人:宝路 文档编号:48189778 上传时间:2018-07-11 格式:PPT 页数:53 大小:506.07KB
返回 下载 相关 举报
基本数据类型与表达式_第1页
第1页 / 共53页
基本数据类型与表达式_第2页
第2页 / 共53页
基本数据类型与表达式_第3页
第3页 / 共53页
基本数据类型与表达式_第4页
第4页 / 共53页
基本数据类型与表达式_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《基本数据类型与表达式》由会员分享,可在线阅读,更多相关《基本数据类型与表达式(53页珍藏版)》请在金锄头文库上搜索。

1、第2章 基本数据类型与表达式 本章要点: Visual C# .NET数据类型概述 Visual C# .NET简单数据类型的使用 Visual C# .NET的常量和变量 Visual C# .NET的运算符与表达式 Visual C# .NET的常用方法2.1 循序渐进学理论 2.1.1 Visual C# .NET的标识符在Visual C# .NET中定义标识符时,必须符合以下 命名规则。 (1)标识符必须是由字母、数字、下划线组成的一串符 号,且必须以字母或下划线开头。 (2)由于标识符代表对象的名称,所以用户在选取标识 符时应选取有意义的字符序列,以便在程序中能从标 识符看出所标识

2、的对象,从而便于阅读和记忆。 (3)用户定义的标识符不能与C#语言的关键字同名。 2.1.2 Visual C#.NET的数据类型简介 2.1.3 简单数据类型 1整数数据类型 2字符数据类型 C#的字符类型有以下特点: (1)每个字符占2个字节。 (2)C#中的字符型与整型之间不能再像C/C+中自动转 换。以下语句在C#中不合法:char c=13; 不过用户依旧可以将一个整型数显式地转换为一个字符 数据类型,然后赋值给字符变量。如下: char c=(char)13; 3布尔类型 布尔类型(bool)只含有两个数值:true和false。 4实数类型实数类型又称浮点型,C#中的浮点型包含单

3、精度浮点型 (float)和双精度浮点型(double)两种。 (1)单精度型:取值范围为 之 间,精度为7位数。 (2)双精度型:取值范围为 之 间,精度可达15到16位。 使用实数类型,需注意以下几个问题: (1)存在正0和负0 。 (2)存在正无穷大和负无穷大,一般产生在除数为0的 情况下,例如,1.2/0.0的结果是正无空大,-1.2/0.0的 结果为负无空大。 (3)存在非数字值(Not-a-Number,简称NaN)。当出 现0.0/0.0这种非法运算的时候就会出现非数字值。 (4)对于浮点运算,如果运算结果的绝对值在精度范围 内小到一定程度,系统就会当做0值处理(+0 或-0)

4、。 5小数类型 又称十进制类型,其类型说明符为decimal,主要 用于金融领域,又称金融类型,其表示的值的范围大 约是 到 ,比float类型小,但是其精确 度却可以达到28到29位。在十进制类型的数据的后面加上“m”,表示该数 据是小数类型,如0.1m、123.9m等。 2.1.4 常量与变量 1常量常量又叫常数,是在程序运行过程中其值不改变 的量。常量也有数据类型,在C#语言中,常量的数据 类型有多种,分别是:sbyte、byte、short、ushort、int 、uint、long、ulong、char、float、double、decimal、 bool、string等。符号常量声

5、明的格式如下。 格式:常量修饰符 const 类型说明符 常量名=常量表 达式; 例如:public const int A=1,B=3; 与C/C+类似,在C#中,一个常量可以依赖于另 一个符号常量,但不能形成循环依赖,例如: class ConstExample public const int A=1;public const int B=A+2; 注意:常量是静态的,能够在类中访问。 【例2-1】 分析下列程序的执行结果。 程序代码 class ConstExample public const int A=1;public const int B=(A+2)*(A+3);public

6、 static void Main() System.Console.WriteLine(“A=0,B=1“,ConstExam ple.A,ConstExample.B); 程序分析 本题在类ConstExample中定义了两个常量A和B,它们之 间不存在相互依赖的关系,常量是静态的,可以直接 访问。所以最后输出的结果是1和12。运行结果2变量 (1)变量的含义及其定义 变量是指在程序运行过程中其值可以发生变化的量。 定义变量的一般格式如下。 格式:变量修饰符 类型说明符 变量名1=初值1,变 量名2=初值2,; 例如,有以下变量定义语句: private static int gz=65;

7、public double jj=76.8; (2)静态变量和实例变量 声明变量时,使用static关键字声明的变量为静态 变量。静态变量只需创建一次,在后面的程序中就可 以多次引用。静态变量的初始值就是该变量类型的默 认值。实例变量是指在声明变量时没有使用static变量 说明符的变量,也称普通变量。实例对象在指定的对 象中被声明并分配空间,如果实例变量所在的对象被 撤消了,该变量也就从内存中被清除了。 【例2-2】 分析下列程序的运行结果。 程序代码 using System;/引入命名空间 class StaticTest /定义类 public static int sta1=10;

8、/定义静态变量,该变量只创 建一次,由类名访问public int a2=10;/定义实例变量,每创建一个实例时, 均创建一个变量 class StaticExample public static void Main() StaticTest A,B; /定义类的变量A=new StaticTest();/创建类的实例AB=new StaticTest();/创建类的实例BStaticTest.sta1=StaticTest.sta1+10;/通过类名给静态变量赋值A.a2=A.a2+10;/给实例A的成员a2赋值StaticTest.sta1=StaticTest.sta1+10;/通过类

9、名给静态变量赋值B.a2=B.a2+20;/给实例B的成员a2赋值 /输出静态变量和实例A的成员a2的值Console.WriteLine(“StaticTest.sta1=0,A.a2=1“,StaticTest.sta 1,A.a2);/输出静态变量和实例B的成员a2的值Console.WriteLine(“StaticTest.sta1=0,B.a2=1“,StaticTest.sta 1,B.a2); 运行结果 (3)局部变量 局部变量是临时变量,它只是在定义它的 块内起作用,所谓块是指大括号“”和“” 之间的所有内容。局部变量从被声明的位置开始起作用,当 块结束时,局部变量也会随着消

10、失。使用局部变量需注意初始化问题,局部变 量需要人工赋值后才能使用 【例2-3】分析下列程序的运行结果。 程序代码 using System; public class LocalTest public static void LocalExample() int i=210,k;/定义局部变量i和kk=i*2; /给局部变量k赋值Console.WriteLine(“i=0,k=1“,i,k); / 输出i和k的值 public static void Main() LocalExample();/调用函数Console.WriteLine(“i=0,k=0“,i,k);/此 语句将产生错误

11、 运行结果 2.1.5 运算符与表达式 1运算符与表达式概述 (1)运算符和表达式的概念C#中各种运算是用符号来表示的,用来表示运算 的符号称运算符。用运算符把运算对象连接起来的有 意义的式子称为表达式,每个表达式的运算结果是一 个值。 (2)运算对象和运算符的“目”运算符必须有运算对象,根据运算对象的多少可 以把运算符分成单目运算符、双目运算符和三目运算 符。 (3)运算符的优先级和结合性计算下面的表达式:3+5*2大家都知道先算“*”号再算“+”号,其实这里就涉 及到运算符的优先级问题。即当表达式中出现多个运 算符,计算表达式值时,必须决定运算符的运算次序 ,我们把这个问题称为运算符的优先

12、级。有如下的表达式:Sb*(a-c)该表达式应先算括号内的“a-c”,然后再用b乘上“a -c”的运算结果。当在一个表达式中出现多个同级别 的运算符时,应先算谁呢?这就涉及到运算符的结合 性 2算术运算符与算术表达式 (1)基本算术运算符 (2)增1(+)减1(-)运算符 【例2-4】分析下列程序的运行结果。程序代码 using System; class ArthTest public static void Main() int n=10,m=3;float f=5.0F,g=10.0F;double d=5.0,e=10.0;Console.WriteLine(“n+m=0,n-m=1,

13、n*m=2,n/m=3,n%m=4“,n+m,n-m,n*m,n/m,n%m);Console.WriteLine(“d+e=0,d-e=1,d*e=2,d/e=3“,d+e,d- e,d*e,d/e);Console.WriteLine(“n+m-f*g/d=0“,n+m-f*g/d);Console.WriteLine(“n%m*f*d=0“,n%m*f*d); 运行结果 【2-5】分析下列程序的运行结果。程序代码 using System; class AddSub public static void Main() int a=4,b=5,m,n; /m=a+b+; /n=a+b; /

14、Console.WriteLine(“m=0 n=1“,m,n);/m=+a+(+b); /n=a+b; /Console.WriteLine(“m=0 n=1“,m,n);/ 运行结果 3关系运算符与关系表达式 关系运算符均是双目运算符,它们的优先级和结合性如 下: 优先级: (1)算术运算符 优于 关系运算符 (2)、= 优于 = != 结合性:、=等运算符同级,结合性自左向右。=、 !=等运算符同级,结合性自左向右。 【2-6】分析下列程序的运行结果。程序代码 using System; class CompOP public static void Main() int i=1,j=7

15、; /char c1=A,c2=a; /Console.WriteLine(“0,1,2“,ij,i=j,ic2,c1=c2,c1b /Console.WriteLine(“!(ax) | !(b x) |!(b ) 位运算符在表达式中的优先级可概括成如下几点 : 位反()运算符为单目运算符,优于所有的 双目运算符和三目运算符。 位移位运算符优先级相同,比算术运算符的优 先级低,比关系运算符的优先级高。 位逻辑运算符的优先级比关系运算符的优先级 低,比逻辑运算符的优先级高。 三个位逻辑运算符的优先次序为: class WeiTest public static void Main() char y,x;x=(char)0x9d; y=(char)0xa5;Console.WriteLine(“xConsole.WriteLine(“x|y=0“,x|y);Console.WriteLine(“xy=0“,xy);Console.WriteL

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

当前位置:首页 > 中学教育 > 教学课件

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