Visual C# .NET基本数据类型与表达式(工程师培训)

举报
资源描述
第第2 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)由于标识符代表对象的名称,所以用户在选取标识符时应选取有意义的字符序列,以便在程序中能从标识符看出所标识的对象,从而便于阅读和记忆。(3)用户定义的标识符不能与C#语言的关键字同名。2.1.2 Visual C#.NET2.1.2 Visual C#.NET的数据类型简介的数据类型简介 2.1.3 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#中的浮点型包含单精度浮点型(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)。5小数类型 又称十进制类型,其类型说明符为decimal,主要用于金融领域,又称金融类型,其表示的值的范围大约是 到 ,比float类型小,但是其精确度却可以达到28到29位。在十进制类型的数据的后面加上“m”,表示该数据是小数类型,如0.1m、123.9m等。2.1.4 2.1.4 常量与变量常量与变量 1常量 常量又叫常数,是在程序运行过程中其值不改变的量。常量也有数据类型,在C#语言中,常量的数据类型有多种,分别是:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string等。符号常量声明的格式如下。格式:常量修饰符 const 类型说明符 常量名=常量表达式;例如:public const int A=1,B=3;与C/C+类似,在C#中,一个常量可以依赖于另一个符号常量,但不能形成循环依赖,例如:class ConstExamplepublic 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 static void Main()System.Console.WriteLine(A=0,B=1,ConstExample.A,ConstExample.B);程序分析 本题在类ConstExample中定义了两个常量A和B,它们之间不存在相互依赖的关系,常量是静态的,可以直接访问。所以最后输出的结果是1和12。运行结果2变量(1)变量的含义及其定义变量是指在程序运行过程中其值可以发生变化的量。定义变量的一般格式如下。格式:变量修饰符 类型说明符 变量名1=初值1,变量名2=初值2,;例如,有以下变量定义语句:private static int gz=65;public double jj=76.8;(2)静态变量和实例变量 声明变量时,使用static关键字声明的变量为静态变量。静态变量只需创建一次,在后面的程序中就可以多次引用。静态变量的初始值就是该变量类型的默认值。实例变量是指在声明变量时没有使用static变量说明符的变量,也称普通变量。实例对象在指定的对象中被声明并分配空间,如果实例变量所在的对象被撤消了,该变量也就从内存中被清除了。【例2-2】分析下列程序的运行结果。程序代码using System;/引入命名空间class StaticTest /定义类 public static int sta1=10;/定义静态变量,该变量只创建一次,由类名访问 public int a2=10;/定义实例变量,每创建一个实例时,均创建一个变量class StaticExample public static void Main()StaticTest A,B;/定义类的变量 A=new StaticTest();/创建类的实例A B=new StaticTest();/创建类的实例B StaticTest.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);运行结果(3)局部变量 局部变量是临时变量,它只是在定义它的块内起作用,所谓块是指大括号“”和“”之间的所有内容。局部变量从被声明的位置开始起作用,当块结束时,局部变量也会随着消失。使用局部变量需注意初始化问题,局部变量需要人工赋值后才能使用 【例2-3】分析下列程序的运行结果。程序代码using System;public class LocalTest public static void LocalExample()int i=210,k;/定义局部变量i和k k=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);/此语句将产生错误 运行结果 2.1.5 2.1.5 运算符与表达式运算符与表达式 1运算符与表达式概述(1)运算符和表达式的概念 C#中各种运算是用符号来表示的,用来表示运算的符号称运算符。用运算符把运算对象连接起来的有意义的式子称为表达式,每个表达式的运算结果是一个值。(2)运算对象和运算符的“目”运算符必须有运算对象,根据运算对象的多少可以把运算符分成单目运算符、双目运算符和三目运算符。(3)运算符的优先级和结合性 计算下面的表达式:3+5*2 大家都知道先算“*”号再算“+”号,其实这里就涉及到运算符的优先级问题。即当表达式中出现多个运算符,计算表达式值时,必须决定运算符的运算次序,我们把这个问题称为运算符的优先级。有如下的表达式: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,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;/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;/char c1=A,c2=a;/Console.WriteLine(0,1,2,ij,i=j,ic2,c1=c2,c1b&xb&xb)&!(xy)=0,!(ab)&!(xy);/Console.WriteLine(!(ax)|!(b x)|!(b y);/运行结果 5位运算符 位运算符用来对操作数进行位运算,其运算对象是整型和字符型。(1)位逻辑运算符 位与运算符(&)位或运算符(|)异或运算符()取反运算符()(2)位移位运算符 左移运算符()位运算符在表达式中的优先级可概括成如下几点:位反()运算符为单目运算符,优于所有的双目运算符和三目运算符。位移位运算符优先级相同,比算术运算符的优先级低,比关系运算符的优先级高。位逻辑运算符的优先级比关系运算符的优先级低,比逻辑运算符的优先级高。三个位逻辑运算符的优先次序为:&优于 优于|【2-8】分析下列程序的运行结果。程序代码using System;class WeiTest public static void Main()char y,x;x=(char)0 x9d;y=(char)0 xa5;Console.WriteLine(x&y=0,x&y);Console.WriteLine(x|y=0,x|y);Console.WriteLine(xy=0,xy);Console.WriteLine(x2=0,x2);Console.WriteLine(x2=0,xy?x:y;由于xy的值为false,故条件表达式的值为y,即8,把8赋给m,m的值为8。8其它运算符 9运算符的优先级 2.1.6 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)求
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 行业资料 > 工业设计


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