第2章 基本数据类型与表达式课件_第1页
第2章 基本数据类型与表达式课件_第2页
第2章 基本数据类型与表达式课件_第3页
第2章 基本数据类型与表达式课件_第4页
第2章 基本数据类型与表达式课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

第2章

基本数据类型与表达式

本章要点:

VisualC#.NET数据类型概述

VisualC#.NET简单数据类型的使用

VisualC#.NET的常量和变量

VisualC#.NET的运算符与表达式

VisualC#.NET的常用方法第2章基本数据类型与表达式2.1循序渐进学理论

2.1.1VisualC#.NET的标识符

在VisualC#.NET中定义标识符时,必须符合以下命名规则。

(1)标识符必须是由字母、数字、下划线组成的一串符号,且必须以字母或下划线开头。(2)由于标识符代表对象的名称,所以用户在选取标识符时应选取有意义的字符序列,以便在程序中能从标识符看出所标识的对象,从而便于阅读和记忆。(3)用户定义的标识符不能与C#语言的关键字同名。

第2章基本数据类型与表达式2.1.2VisualC#.NET的数据类型简介

第2章基本数据类型与表达式2.1.3简单数据类型

1.整数数据类型

第2章基本数据类型与表达式2.字符数据类型

C#的字符类型有以下特点:(1)每个字符占2个字节。(2)C#中的字符型与整型之间不能再像C/C++中自动转换。以下语句在C#中不合法:charc=13;不过用户依旧可以将一个整型数显式地转换为一个字符数据类型,然后赋值给字符变量。如下:charc=(char)13;

第2章基本数据类型与表达式第2章基本数据类型与表达式3.布尔类型

布尔类型(bool)只含有两个数值:true和false。

4.实数类型实数类型又称浮点型,C#中的浮点型包含单精度浮点型(float)和双精度浮点型(double)两种。

(1)单精度型:取值范围为~之间,精度为7位数。(2)双精度型:取值范围为~之间,精度可达15到16位。

第2章基本数据类型与表达式使用实数类型,需注意以下几个问题:

(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)。

第2章基本数据类型与表达式5.小数类型

又称十进制类型,其类型说明符为decimal,主要用于金融领域,又称金融类型,其表示的值的范围大约是到,比float类型小,但是其精确度却可以达到28到29位。在十进制类型的数据的后面加上“m”,表示该数据是小数类型,如0.1m、123.9m等。

第2章基本数据类型与表达式2.1.4常量与变量

1.常量

常量又叫常数,是在程序运行过程中其值不改变的量。常量也有数据类型,在C#语言中,常量的数据类型有多种,分别是:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string等。符号常量声明的格式如下。[格式]:[常量修饰符]const类型说明符

常量名=常量表达式;第2章基本数据类型与表达式例如:

publicconstintA=1,B=3;与C/C++类似,在C#中,一个常量可以依赖于另一个符号常量,但不能形成循环依赖,例如:classConstExample{publicconstintA=1;publicconstintB=A+2;}

注意:常量是静态的,能够在类中访问。

第2章基本数据类型与表达式【例2-1】分析下列程序的执行结果。[程序代码]classConstExample{publicconstintA=1;publicconstintB=(A+2)*(A+3);

publicstaticvoidMain(){System.Console.WriteLine("A={0},B={1}",ConstExample.A,ConstExample.B);}}第2章基本数据类型与表达式[程序分析]本题在类ConstExample中定义了两个常量A和B,它们之间不存在相互依赖的关系,常量是静态的,可以直接访问。所以最后输出的结果是1和12。

[运行结果]第2章基本数据类型与表达式2.变量

(1)变量的含义及其定义变量是指在程序运行过程中其值可以发生变化的量。定义变量的一般格式如下。[格式]:[变量修饰符]类型说明符变量名1=初值1,变量名2=初值2,…;例如,有以下变量定义语句:privatestaticintgz=65;publicdoublejj=76.8;第2章基本数据类型与表达式(2)静态变量和实例变量

声明变量时,使用static关键字声明的变量为静态变量。静态变量只需创建一次,在后面的程序中就可以多次引用。静态变量的初始值就是该变量类型的默认值。实例变量是指在声明变量时没有使用static变量说明符的变量,也称普通变量。实例对象在指定的对象中被声明并分配空间,如果实例变量所在的对象被撤消了,该变量也就从内存中被清除了。

第2章基本数据类型与表达式【例2-2】分析下列程序的运行结果。[程序代码]usingSystem;//引入命名空间classStaticTest//定义类{publicstaticintsta1=10;//定义静态变量,该变量只创建一次,由类名访问

publicinta2=10;//定义实例变量,每创建一个实例时,均创建一个变量}classStaticExample{publicstaticvoidMain(){StaticTestA,B;//定义类的变量第2章基本数据类型与表达式A=newStaticTest();//创建类的实例AB=newStaticTest();//创建类的实例BStaticTest.sta1=StaticTest.sta1+10;//通过类名给静态变量赋值

A.a2=A.a2+10;//给实例A的成员a2赋值

StaticTest.sta1=StaticTest.sta1+10;//通过类名给静态变量赋值

B.a2=B.a2+20;//给实例B的成员a2赋值

//输出静态变量和实例A的成员a2的值

Console.WriteLine("StaticTest.sta1={0},A.a2={1}",StaticTest.sta1,A.a2);//输出静态变量和实例B的成员a2的值

Console.WriteLine("StaticTest.sta1={0},B.a2={1}",StaticTest.sta1,B.a2);}}第2章基本数据类型与表达式[运行结果]第2章基本数据类型与表达式(3)局部变量

局部变量是临时变量,它只是在定义它的块内起作用,所谓块是指大括号“{”和“}”之间的所有内容。局部变量从被声明的位置开始起作用,当块结束时,局部变量也会随着消失。使用局部变量需注意初始化问题,局部变量需要人工赋值后才能使用

第2章基本数据类型与表达式【例2-3】分析下列程序的运行结果。[程序代码]usingSystem;publicclassLocalTest{publicstaticvoidLocalExample(){inti=210,k;//定义局部变量i和kk=i*2;//给局部变量k赋值

Console.WriteLine("i={0},k={1}",i,k);//输出i和k的值

}publicstaticvoidMain(){LocalExample();//调用函数

Console.WriteLine("i={0},k={0}",i,k);//此语句将产生错误

}}第2章基本数据类型与表达式[运行结果]第2章基本数据类型与表达式2.1.5运算符与表达式

1.运算符与表达式概述

(1)运算符和表达式的概念

C#中各种运算是用符号来表示的,用来表示运算的符号称运算符。用运算符把运算对象连接起来的有意义的式子称为表达式,每个表达式的运算结果是一个值。(2)运算对象和运算符的“目”运算符必须有运算对象,根据运算对象的多少可以把运算符分成单目运算符、双目运算符和三目运算符。

第2章基本数据类型与表达式(3)运算符的优先级和结合性计算下面的表达式:

3+5*2

大家都知道先算“*”号再算“+”号,其实这里就涉及到运算符的优先级问题。即当表达式中出现多个运算符,计算表达式值时,必须决定运算符的运算次序,我们把这个问题称为运算符的优先级。有如下的表达式:

Sb*(a-c)

该表达式应先算括号内的“a-c”,然后再用b乘上“a-c”的运算结果。当在一个表达式中出现多个同级别的运算符时,应先算谁呢?这就涉及到运算符的结合性

第2章基本数据类型与表达式2.算术运算符与算术表达式

(1)基本算术运算符

第2章基本数据类型与表达式(2)增1(++)减1(--)运算符

第2章基本数据类型与表达式【例2-4】分析下列程序的运行结果。

[程序代码]usingSystem;classArthTest{publicstaticvoidMain(){intn=10,m=3;floatf=5.0F,g=10.0F;doubled=5.0,e=10.0;Console.WriteLine("n+m={0},n-m={1},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章基本数据类型与表达式[运行结果]第2章基本数据类型与表达式【2-5】分析下列程序的运行结果。

[程序代码]usingSystem;classAddSub{publicstaticvoidMain(){inta=4,b=5,m,n; //①m=a+++b++; //②n=a+b; //③Console.WriteLine("m={0}n={1}",m,n); //④m=++a+(++b); //⑤n=a+b; //⑥Console.WriteLine("m={0}n={1}",m,n); //⑦}}第2章基本数据类型与表达式[运行结果]

第2章基本数据类型与表达式3.关系运算符与关系表达式

第2章基本数据类型与表达式关系运算符均是双目运算符,它们的优先级和结合性如下:优先级:(1)算术运算符

优于

关系运算符(2)<、<=、>、>=优于

==!=结合性:

<、<=、>、>=等运算符同级,结合性自左向右。==、!=等运算符同级,结合性自左向右。

第2章基本数据类型与表达式【2-6】分析下列程序的运行结果。[程序代码]usingSystem;classCompOP{publicstaticvoidMain(){inti=1,j=7; //①charc1='A',c2='a'; //②Console.WriteLine("{0},{1},{2}",i>j,i>=j,i<=j); //③Console.WriteLine("{0},{1},{2}",c1>c2,c1>=c2,c1<=c2); //④}}第2章基本数据类型与表达式[运行结果]第2章基本数据类型与表达式4.逻辑运算符与逻辑表达式

第2章基本数据类型与表达式第2章基本数据类型与表达式逻辑运算符的优先级和结合性如下:优先级:(1)逻辑非(!)是单目运算符,优于双目运算符;(2)逻辑与(&&)和逻辑或(||)是双目运算符,其优先级如下:双目算术运算符

优于

关系运算符

优于

&&优于

||结合性:(1)逻辑非!和单目算术运算符是同级的,结合性自右向左;(2)逻辑与(&&)和逻辑或(||)是双目运算符,其结合性是自左向右。

第2章基本数据类型与表达式【2-7】分析下列程序的运行结果。

[程序代码]usingSystem;classLTest{publicstaticvoidMain(){intx=3,y=5,a=2,b=-3;Console.WriteLine("a>b&&x<y={0}",a>b&&x<y); //①Console.WriteLine("!(a>b)&&!(x>y)={0}",!(a>b)&&!(x>y)); //②Console.WriteLine("!(a>x)||!(b<y)={0}",!(a>x)||!(b<y)); //③}}第2章基本数据类型与表达式[运行结果]第2章基本数据类型与表达式5.位运算符

位运算符用来对操作数进行位运算,其运算对象是整型和字符型。(1)位逻辑运算符①位与运算符(&)②位或运算符(|)③异或运算符(^)④取反运算符(~)(2)位移位运算符

①左移运算符(<<)

②右移运算符(>>)

第2章基本数据类型与表达式位运算符在表达式中的优先级可概括成如下几点:①位反(~)运算符为单目运算符,优于所有的双目运算符和三目运算符。②位移位运算符优先级相同,比算术运算符的优先级低,比关系运算符的优先级高。③位逻辑运算符的优先级比关系运算符的优先级低,比逻辑运算符的优先级高。④三个位逻辑运算符的优先次序为:&优于

^优于

|第2章基本数据类型与表达式【2-8】分析下列程序的运行结果。

[程序代码]usingSystem;classWeiTest{publicstaticvoidMain(){chary,x;x=(char)0x9d;y=(char)0xa5;Console.WriteLine("x&y={0}",x&y);Console.WriteLine("x|y={0}",x|y);Console.WriteLine("x^y={0}",x^y);Console.WriteLine("x>>2={0}",x>>2);Console.WriteLine("x<<2={0}",x<<2);}}第2章基本数据类型与表达式[执行结果]第2章基本数据类型与表达式6.赋值运算符与赋值表达式

赋值运算符的优先级与结合性如下。优先级:在C#语言中,所有的赋值和自反赋值运算符的优先级都是一样的,比所有的其它运算符的优先级都低,是优先级最低的运算符。结合性:赋值和自反赋值运算符的结合性是自右向左。第2章基本数据类型与表达式第2章基本数据类型与表达式7.条件运算符与条件表达式

条件运算符是C#语言中的唯一的一个三目运算符,它是由“?”和“:”两个符号组成,它的三个对象都是表达式。其一般形式如下:表达式1?表达式2:表达式3条件运算符的优先级和结合性如下:优先级:仅优于赋值运算符。结合性:自右向左。例如,有下面的程序段:x=5;y=8;m=x>y?x:y;由于x>y的值为false,故条件表达式的值为y,即8,把8赋给m,m的值为8。

第2章基本数据类型与表达式8.其它运算符

第2章基本数据类型与表达式9.运算符的优先级

第2章基本数据类型与表达式2.1.6常用方法

方法功能示例Abs(x)求x的绝对值Abs(15.3)=15.3、Abs(0)=0、Abs(-5.3)=5.3Ceiling(x)求不小于x的最小整数Ceiling(7.3)=8.0、Ceiling(-9.6)=-9.0Cos(x)求x的余弦值(x为弧度)Cos(0.0)=1.0Exp(x)求指数Exp(1.0)=2.718281828Floor(x)求不大于x的最小整数Floor(7.8)=7.

温馨提示

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

评论

0/150

提交评论