《变量、数据类型和表达式.ppt》由会员分享,可在线阅读,更多相关《变量、数据类型和表达式.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 变量、数据类型和表达式Week 2主要内容n变量和常量变量和常量n数据类型数据类型n类型转换类型转换n运算符和表达式运算符和表达式1.变量与常量变量与常量n n变量n n常量n n变量是在程序运行过程中,其值可以改变的数据n n在C#中,命名变量的过程叫声明,且规定,变量必须先声明后使用n n事实上,在C#中所有的名称都必须先声明后使用,包括常量名、方法名、类名、对象名等等n n这些名称统称为标识符变量命名规则变量命名规则1.1.变量名的第一个字符必须是变量名的第一个字符必须是字母字母字母字母或或下划线下划线下划线下划线,其余,其余字符必须是字符必须是字母、数字或下划线字母、数字或下划
2、线字母、数字或下划线字母、数字或下划线2.2.变量名不能是变量名不能是C#C#的的关键字关键字关键字关键字或或库函数名库函数名库函数名库函数名例如:例如:sum,_s,refType sum,_s,refType 都是合法的变量名都是合法的变量名int,Number Of Student,2Aint,Number Of Student,2A是非法变量名是非法变量名3.3.为变量命名最好有意义,可以提高程序的可读性为变量命名最好有意义,可以提高程序的可读性如如:足球队的名字可以叫做足球队的名字可以叫做footballTeam,footballTeam,而而cT34CcT34C就不就不是一个好的变
3、量名是一个好的变量名在包含多个单词的变量名中在包含多个单词的变量名中,从第二个单词开始从第二个单词开始,每个每个单词都采取首字母大写的形式单词都采取首字母大写的形式.如上面的如上面的footballTeamfootballTeam实例:以下变量名,哪些是非法的,哪些合法?2xmy namex-yintaverageScorebtnSavemaxNumberxxxxVVV声明变量声明变量n n声明变量就是把存放数据的类型告诉程序,以便为变量安排内存空间n n声明变量最简单的格式为:数据类型数据类型 变量名变量名例如:例如:int number;/int number;/声明一个整型变量声明一个整
4、型变量float x;/float x;/声明一个单精度浮点型变量声明一个单精度浮点型变量bool open;/bool open;/声明一个布尔型变量声明一个布尔型变量变量赋值变量赋值n nC#规定,变量必须赋值后才能引用为变量赋值需使用赋值号为变量赋值需使用赋值号“=”=”例如:例如:int number;int number;number=32;/number=32;/为变量赋值为变量赋值3232bool open;bool open;open=true;/open=true;/为变量赋值为变量赋值truetruen n可以使用变量为变量赋值,例如:可以使用变量为变量赋值,例如:bool
5、 close;bool close;close=open;/close=open;/为变量赋值为变量赋值open(true)open(true)n n可以为几个变量一同赋值,例如:可以为几个变量一同赋值,例如:int a,b,c;int a,b,c;a=b=c=32;a=b=c=32;n n可以在声明变量的同时为变量赋值,相当于将可以在声明变量的同时为变量赋值,相当于将声明语句与赋值语句合二为一,例如:声明语句与赋值语句合二为一,例如:double area,radius=16;double area,radius=16;常量常量n n常量是在程序运行过程中,其值保持不变的量常量是在程序运行过
6、程中,其值保持不变的量n n常量定义格式为:常量定义格式为:const const 类型名称类型名称 常量名常量名=常量表达式;常量表达式;“常量表达式常量表达式”不能包含变量及函数等值会发生变不能包含变量及函数等值会发生变化的内容,但可以包含其他已定义常量化的内容,但可以包含其他已定义常量例如:例如:const int max=10;/const int max=10;/合法合法const double P1=3.1415926;/const double P1=3.1415926;/合法合法const double maxArea=p1*max*max;/const double maxA
7、rea=p1*max*max;/合法,表达式合法,表达式包含已定义常量包含已定义常量int num=10;int num=10;const double maxArea=P1*num*num;/const double maxArea=P1*num*num;/不合法,表达不合法,表达式包含变量式包含变量n n如果在程序中非常频繁地使用某一常量,可以将其定义为常量n n定义常量的好处在于:提高代码输入效率提高代码输入效率减少输入错误减少输入错误常量名一旦输入错误,在程序运行前的编译阶段常量名一旦输入错误,在程序运行前的编译阶段即可检查出来即可检查出来2.数据类型引用类型值类型引引用用类类型型2.
8、1 Reference -引用类型n在内存中在内存中不不存储存储实际值实际值,而是存储,而是存储数据的数据的引用引用。n引用类型包括引用类型包括:类(类(class)接口(接口(interface)数组(数组(array)字符串(字符串(string)n引用类型在以后的课程中再详细讲述引用类型在以后的课程中再详细讲述2.2 Value-值类型主要组成主要组成 :n简单类型简单类型n枚举类型枚举类型n结构类型结构类型种类种类描述描述值值类类型型简单类型简单类型Simpletypes有符号整数:有符号整数:有符号整数:有符号整数:sbytesbyte,short,short,intint,long
9、long无符号整数:无符号整数:无符号整数:无符号整数:byte,byte,ushortushort,uintuint,ulongulongUnicodeUnicode字符:字符:字符:字符:charcharIEEEIEEE浮点数:浮点数:浮点数:浮点数:float,doublefloat,double十进制数:十进制数:十进制数:十进制数:decimaldecimal布尔值:布尔值:布尔值:布尔值:boolbool枚举类型枚举类型EnumEnumtypetypeenumE.结构类型结构类型StructStructtypetypestructS.整数类型整数类型整数类型整数类型 浮点类型浮点类
10、型浮点类型浮点类型 十进制类型十进制类型十进制类型十进制类型 布布布布尔尔尔尔类类类类型型型型 字符类型字符类型字符类型字符类型 2.2.1简单类型简单类型 整数类型整数类型 整数类型在计算机中的取值范围整数类型在计算机中的取值范围 描述描述描述描述位数位数位数位数数据数据数据数据类类类类型型型型取取取取值值值值范范范范围围围围有符号整有符号整有符号整有符号整数数数数8 8sbytesbyte1281271281271616shortshort32 76832 76732 76832 7673232intint2 147 483 6482 147 483 6472 147 483 6482 1
11、47 483 6476464longlong9 223 372 036 854 775 8089 223 372 9 223 372 036 854 775 8089 223 372 036 854 775 807036 854 775 807无符号整无符号整无符号整无符号整数数数数8 8bytebyte025502551616ushortushort065 535065 5353232uintuint04 294 967 29504 294 967 2956464ulongulong018 446 744 073 709 551 615018 446 744 073 709 551 615浮
12、点类型浮点类型 浮点类型在计算机中的取值范围浮点类型在计算机中的取值范围 描述描述描述描述位数位数位数位数数据数据数据数据类类类类型型型型取取取取值值值值范范范范围围围围单单单单精度浮点精度浮点精度浮点精度浮点型型型型3232floatfloat1.5101.5104545 到到到到3.4103.4103838,7 7位精位精位精位精度度度度双精度浮点双精度浮点双精度浮点双精度浮点型型型型6464doubledouble5.0105.010324324 1.7101.710308308,1515位精度位精度位精度位精度十进制类型十进制类型 十进制类型在计算机中的取值范围十进制类型在计算机中的取
13、值范围 描述描述描述描述位数位数位数位数数据数据数据数据类类类类型型型型取取取取值值值值范范范范围围围围十十十十进进进进制制制制类类类类型型型型128128decimaldecimal1.0 101.0 1028287.9 7.9 10102828,29,29位精度位精度位精度位精度布尔类型布尔类型 布尔类型表示现实中的布尔类型表示现实中的“真真”或或“假假”这两个概这两个概念,主要用来进行逻辑判断。在念,主要用来进行逻辑判断。在C#中,分别采用中,分别采用true和和false这两个值来表示这两个值来表示“真真”和和“假假”。描述描述描述描述位数位数位数位数数据类型数据类型数据类型数据类型取
14、值范围取值范围取值范围取值范围布布布布尔尔尔尔类类类类型型型型8 8boolbool true true或或或或falsefalse字符类型字符类型字符类型采用国际上公认的字符类型采用国际上公认的Unicode标准字符集标准字符集描述描述描述描述位数位数位数位数数据数据数据数据类类型型型型取取取取值值范范范范围围字符字符字符字符类类类类型型型型1616charchar在在在在065 535065 535范范范范围围围围内内内内以双字以双字以双字以双字节编码节编码节编码节编码的任的任的任的任意符号意符号意符号意符号 enum枚举类型 Enumerate,为一组在逻辑上密为一组在逻辑上密不可分的整
15、数提供便于记忆的符号。不可分的整数提供便于记忆的符号。例:声明一个代表季节的枚举类型:例:声明一个代表季节的枚举类型:enumSeasonSpring,Summer,Autumn,Winter;SeasoncurrentSeason;using System;using System;namespace ConsoleApplication1namespace ConsoleApplication1 enum Season enum Season Spring,Spring,Summer,Summer,Autumn,Autumn,Winter Winter ;class Program cla
16、ss Program static void Main(string args)static void Main(string args)Season currentSeason;Season currentSeason;currentSeason=0;currentSeason=0;Console.WriteLine(currentSeason);Console.WriteLine(currentSeason);Console.ReadLine();Console.ReadLine();随堂练习(写作业本)n定义一个枚举类型定义一个枚举类型Sex,表示性别,性别有,表示性别,性别有Male和
17、和Female两种两种。并使用枚举。并使用枚举。代码:代码:using System;using System;namespace ConsoleApplication1namespace ConsoleApplication1 enum Sex enum Sex Male,Male,Female Female ;class Program class Program static void Main(string args)static void Main(string args)Sex p;Sex p;p=(Sex)1;p=(Sex)1;Console.WriteLine(p);Conso
18、le.WriteLine(p);Console.ReadLine();Console.ReadLine();struct 结构类型 把一系列相把一系列相关关 的变量组的变量组织成单一实体织成单一实体,这个单一实体这个单一实体的类型就叫做的类型就叫做结构类型,每结构类型,每一个变量称为一个变量称为结构的成员。结构的成员。例:定义通讯录的记录例:定义通讯录的记录结构:结构:struct PhoneBook public string name;public string phone;public string address;PhoneBook cityA;struct表示学生例structStu
19、dent/定义结构定义结构publicstringname;publicstringid;publicuintage;publicstringclassName;Studentst1;/使用结构使用结构st1.name=“王麻子王麻子”;st1.id=“0737333331”;st1.age=20;st1.className=“07软件开发软件开发2班班”;随堂练习(写作业本)n定义一个结构类型定义一个结构类型Point,用来表示平面,用来表示平面上的一个点。用两个整上的一个点。用两个整数值数值x和和y表示坐标位置表示坐标位置。并使用结构类型n定义一个结构类型Point,用来表示平面上的一个点
20、。用两个整数值x和y表示坐标位置。例例:定义通讯录的记录结构定义通讯录的记录结构:struct PhoneBookpublic string name;public string phone;public string address;定义一个结构类型定义一个结构类型Pointint x;Pointint y;2.2.2 泛型泛型 泛型泛型 一种定义一个可以在使用时才确定类一种定义一个可以在使用时才确定类型的数据类型的机制型的数据类型的机制非范型声明方式:非范型声明方式:ArrayList gradeList=new ArrayList();范型声明方式:范型声明方式:List gradeLi
21、st=new List();泛型(续)泛型(续)使用范例:使用范例:List gradeList=new List();gradeList.Add(95);gradeList.Add(100);/显示所有成绩显示所有成绩 foreach(int grade in gradeList)Console.WriteLine(grade);2.2.3 隐式类型局部变量隐式类型局部变量注意:在声明注意:在声明var类型的同时,一定要初始化类型的同时,一定要初始化该变量,否则编译会报错,因为编译器无法该变量,否则编译会报错,因为编译器无法推断出该类型。初始化语句必须为表达式,推断出该类型。初始化语句必须为
22、表达式,不可以为空。且编译时可以推断类型。一旦不可以为空。且编译时可以推断类型。一旦初始化之后,只可以存储这种类型。初始化之后,只可以存储这种类型。C#3.0添加了添加了var这个新关键字,在方法范围中这个新关键字,在方法范围中声明的变量可以具有隐式类型声明的变量可以具有隐式类型 var。隐式类型。隐式类型的本地变量是强类型变量(就好像您已经声的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。在明该类型一样),但由编译器确定类型。在声明局部变量时可把变量声明为声明局部变量时可把变量声明为var类型,那类型,那么这个声明就称为隐含类型局部变量。么这个声明就称为隐含类型局部
23、变量。class Program static void Main(string args)var i=1;var j=3.1415926;var k=Hello Word;System.Console.WriteLine(i=0,j=1,k=2,i,j,k);2.2.4 匿名类型匿名类型class Program static void Main(string args)var v=new ID=1,Name=Adam,Message=Hello Adam;匿名类型是由一个或多个公共只读属性组成匿名类型是由一个或多个公共只读属性组成的类类型。不允许包含其他种类的类成员的类类型。不允许包含其他
24、种类的类成员(如方法或事件)。匿名类型不能强制转换(如方法或事件)。匿名类型不能强制转换为除为除 object 以外的任何接口或类型。以外的任何接口或类型。3.类型转换从一种类型转换为另一种类型从一种类型转换为另一种类型:n隐式转换隐式转换n显式转换显式转换n使用方法进行数据类型的转换使用方法进行数据类型的转换Convert.ToInt32()Convert.ToInt32()Int32.Parse()Int32.Parse()隐式转换 不改变数据精确度的转换,不改变数据精确度的转换,即:从短数据到长数据。即:从短数据到长数据。故无需特别声明。故无需特别声明。例如:例如:int x=12346
25、;/整型数隐式转换为长整型整型数隐式转换为长整型数数long y=x;隐式转换-例1static void Main(string args)int k=432;Console.WriteLine(“k=0”,k);double Q=k;Console.WriteLine(Q=0:F1,Q);Console.ReadLine();/此处为隐式转换此处为隐式转换隐式转换-例2using System;using System;namespace ConsoleApplication2namespace ConsoleApplication2 class Program class Program
26、 static void Main(string args)static void Main(string args)int a=10;int a=10;Console.WriteLine(a=0,a);Console.WriteLine(a=0,a);char c=a;/char c=a;/intint 隐式转换隐式转换隐式转换隐式转换 成成成成charcharcharchar,运行结果会提示错误,运行结果会提示错误,运行结果会提示错误,运行结果会提示错误 /char c=(char)a;/char c=(char)a;/Convert.ToString(a);Convert.ToStrin
27、g(a);Console.WriteLine(c=0,a);Console.WriteLine(c=0,a);隐式数值转换隐式数值转换 隐式数值转换包括以下几种:隐式数值转换包括以下几种:从从从从到到到到sbytesbyteshortshort、intint、longlong、floatfloat、double double 或或或或 decimaldecimalbytebyteshortshort、ushortushort、intint、uintuint、longlong、ulongulong、floatfloat、double double 或或或或 decimaldecimalshort
28、shortintint、longlong、floatfloat、double double 或或或或 decimaldecimalushortushortintint、uintuint、longlong、ulongulong、floatfloat、double double 或或或或 decimaldecimalintintlonglong、floatfloat、double double 或或或或 decimaldecimaluintuintlonglong、ulongulong、floatfloat、double double 或或或或 decimaldecimallonglongfloa
29、tfloat、double double 或或或或 decimaldecimalulongulongfloatfloat、double double 或或或或 decimaldecimalcharcharushortushort、intint、uintuint、longlong、ulongulong、floatfloat、double double 或或或或 decimaldecimalfloatfloatdoubledouble隐式枚举转换隐式枚举转换 隐式枚举转换隐式枚举转换:允许把十进制整数允许把十进制整数0 0转换成任何枚举类型,转换成任何枚举类型,而其他的整数则不存在这种隐式转换。而
30、其他的整数则不存在这种隐式转换。例例:using System;using System;namespace ConsoleApplication1namespace ConsoleApplication1 enum Season enum Season Spring,Spring,Summer,Summer,Autumn,Autumn,Winter Winter ;class Program class Program static void Main(string args)static void Main(string args)Season currentSeason;Season c
31、urrentSeason;currentSeason=currentSeason=0 0;/隐式枚举转换隐式枚举转换 Console.WriteLine(currentSeason);Console.WriteLine(currentSeason);Console.ReadLine();Console.ReadLine();显式数值转换显式数值转换显式数值转换显式数值转换 显式枚举转换显式枚举转换显式枚举转换显式枚举转换 显显式式类类型型转换转换 显式转换显式转换n n显式转换也叫强制转换,是在代码中明确指示将某一类型的数据转换为另一种类型显式转换的一般格式为:(数据类型名称)数据例如:int
32、 x=600;short z=(short)x;/将整型变量x的值显式转换为short类型n n显式转换中可能导致数据的丢失例如:decimal d=234.55M/使用M或m类型符说明类型,否则编译出错int x=(int)d;/将十进制型变量d的值显式转换为整型,小数部分截去,x=234显式转换-例static void Main(string args)double Q=432.0;Console.WriteLine(Q=0:F1,Q);int k=(int)Q;/此处为显式转换此处为显式转换Console.WriteLine(k=0,k);Console.ReadLine();显式数值
33、转换显式数值转换 显式数值转换是指当不存在相应的隐式数值转换时,显式数值转换是指当不存在相应的隐式数值转换时,从一种数值类型到另一种数值类型的转换。从一种数值类型到另一种数值类型的转换。从从从从到到到到sbytesbytebytebyte、ushortushort、uintuint、ulongulong或或或或charcharbytebytesbytesbyte或或或或charcharshortshortsbytesbyte、bytebyte、ushortushort、uintuint、ulongulong或或或或charcharushortushortsbytesbyte、bytebyte、
34、shortshort或或或或charcharintintsbytesbyte、bytebyte、shortshort、ushortushort、uintuint、ulongulong或或或或charcharuintuintsbytesbyte、bytebyte、shortshort、ushortushort、intint或或或或charcharlonglongsbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、ulongulong或或或或charcharulongulongsbytesbyte、bytebyte、shortsh
35、ort、ushortushort、intint、uintuint、longlong或或或或charcharcharcharsbytesbyte、bytebyte或或或或shortshortfloatfloatsbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、longlong、ulongulong、charchar或或或或decimaldecimaldoubledoublesbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、longlong、ulongulon
36、g、charchar、floatfloat或或或或decimaldecimaldecimaldecimalsbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、longlong、ulongulong、charchar、floatfloat或或或或doubledouble从从从从sbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、longlong、ulongulong、charchar、floatfloat、doubledouble或或或或decimaldecim
37、al转换为任何枚举类型转换为任何枚举类型转换为任何枚举类型转换为任何枚举类型从任何枚举类型转换为从任何枚举类型转换为从任何枚举类型转换为从任何枚举类型转换为sbytesbyte、bytebyte、shortshort、ushortushort、intint、uintuint、longlong、ulongulong、charchar、floatfloat、doubledouble或或或或decimal decimal 从任何枚举类型转换为任何其他枚举类型从任何枚举类型转换为任何其他枚举类型从任何枚举类型转换为任何其他枚举类型从任何枚举类型转换为任何其他枚举类型 显式枚举转换显式枚举转换显式枚举转
38、换显式枚举转换 显式枚举转换包括以下内容:显式枚举转换包括以下内容:显式枚举转换包括以下内容:显式枚举转换包括以下内容:例例:using System;using System;namespace ConsoleApplication1namespace ConsoleApplication1 enum Season enum Season Spring,Spring,Summer,Summer,Autumn,Autumn,Winter Winter ;class Program class Program static void Main(string args)static void Ma
39、in(string args)Season currentSeason;Season currentSeason;currentSeason=currentSeason=(Season)1(Season)1;/显式枚举转换显式枚举转换 Console.WriteLine(currentSeason);Console.WriteLine(currentSeason);Console.ReadLine();Console.ReadLine();其它类型转换至int整型数据有三种操作方法:有三种操作方法:n(int)nInt32.Parse()nConvert.toInt32()1.类型转换:(in
40、t)表示使用表示使用显式强制类型转换显式强制类型转换。格式格式:(int)数据数据例如:例如:longt=10;intd=(int)t;强制转换需要考虑强制转换需要考虑精度精度问题问题2.方法转换 nInt32.Parse()nConvert.ToInt32()都都表示将数字的字符串形式转换为表示将数字的字符串形式转换为32位有符号整数,该转换属于方位有符号整数,该转换属于方法转换法转换Convert.ToInt32()被使用得最多。被使用得最多。Convvert.ToInt32()实际上就是实际上就是调用调用Int32.Parse()方法。方法。例:例:编程做以下:编程做以下:输出:输出:E
41、nter your age please:读取用户输入的年龄读取用户输入的年龄输出:输出:Youll be next year 结果如下:using System;using System;namespace ConsoleApplication1namespace ConsoleApplication1 class Program class Program static void Main(string args)static void Main(string args)Console.WriteLine(Enter your age please:);Console.WriteLine(
42、Enter your age please:);/.从键盘读取用户输入并存入从键盘读取用户输入并存入stringstring变量变量 string string a age=Console.ReadLine();ge=Console.ReadLine();/把把stringstring转换为转换为intint类型类型 Console.WriteLine(“Youll be 0 next year”,Console.WriteLine(“Youll be 0 next year”,Convert.ToInt32(Convert.ToInt32(a age)+1ge)+1););Console.R
43、eadLine();Console.ReadLine();n n也可将以上的也可将以上的 Conver.ToInt32()Conver.ToInt32()改为直接调用改为直接调用 Int32.Parse()Int32.Parse()方法:方法:n nint age=Int32.Parse(sAge);int age=Int32.Parse(sAge);代码:4.运算符和表达式运算符类型运算符类型 运算符分为三类运算符分为三类:一元运算符:一元运算符:只使用一个操作数只使用一个操作数 二元运算符:二元运算符:使用两个操作数使用两个操作数 三元运算符:三元运算符:使用三个操作数使用三个操作数 运算
44、符的优先级运算符的优先级 运算符从高到低的优先级顺序:运算符从高到低的优先级顺序:运算符运算符运算符运算符类类类类型型型型运运运运 算算算算 符符符符初初初初级级级级运算符运算符运算符运算符x.yx.y,f(xf(x),),axax,x+,x-,new,x+,x-,new,typeoftypeof,checked,unchecked,checked,unchecked一元运算符一元运算符一元运算符一元运算符!,+,-,(!,+,-,(T)xT)x乘法、除法、取模运算符乘法、除法、取模运算符乘法、除法、取模运算符乘法、除法、取模运算符*,/,%,/,%增量运算符增量运算符增量运算符增量运算符+,
45、-+,-移位运算符移位运算符移位运算符移位运算符关系运算符关系运算符关系运算符关系运算符,=,is,as,=,is,as等式运算符等式运算符等式运算符等式运算符=,!=,!=逻辑逻辑逻辑逻辑“与与与与”运算符运算符运算符运算符&逻辑逻辑逻辑逻辑“异或异或异或异或”运算符运算符运算符运算符 逻辑逻辑逻辑逻辑“或或或或”运算符运算符运算符运算符|条件条件条件条件“与与与与”运算符运算符运算符运算符&条件条件条件条件“或或或或”运算符运算符运算符运算符|条件运算符条件运算符条件运算符条件运算符?:?:赋值赋值赋值赋值运算符运算符运算符运算符=,*=,/=,%=,+=,-=,=,&=,=,|=,*=,
46、/=,%=,+=,-=,=,&=,=,|=简单的赋值运算符与赋值表达式简单的赋值运算符与赋值表达式赋值就是给一个变量赋一个新值。赋值就是给一个变量赋一个新值。“=”运算运算符用于将等号右边的操作数(第二个操作数)符用于将等号右边的操作数(第二个操作数)的值赋给左边的操作数(第一个操作数)。的值赋给左边的操作数(第一个操作数)。表达式的结果是右边操作数的值,所以赋值表达式的结果是右边操作数的值,所以赋值操作可以串联在一起。操作可以串联在一起。算术运算符与算术表达式算术运算符与算术表达式 算术运算符用于创建执行数学操作的表达式算术运算符用于创建执行数学操作的表达式。运运运运 算算算算 符符符符描描
47、描描 述述述述运运运运 算算算算 符符符符描描描描 述述述述+加加加加/除除除除-减减减减+自增自增自增自增1 1*乘乘乘乘-自减自减自减自减1 1%取模取模取模取模关系运算符与关系表达式关系运算符与关系表达式 关系运算符用于创建一个表达式,该表达式关系运算符用于创建一个表达式,该表达式用来比较两个对象并返回布尔值。用来比较两个对象并返回布尔值。运运运运 算算算算 符符符符描描描描 述述述述运运运运 算算算算 符符符符描描描描 述述述述=等于等于等于等于 大于大于大于大于!=!=不等于不等于不等于不等于=小于或等于小于或等于小于或等于小于或等于=大于或等于大于或等于大于或等于大于或等于逻辑运算
48、符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算符和布尔型操作数一起组成了逻辑逻辑运算符和布尔型操作数一起组成了逻辑表达式。表达式。运算符运算符运算符运算符描述描述描述描述!NOT NOT(非非非非)&AND AND(短路短路短路短路)&AND AND(非短路非短路非短路非短路)|OR OR(短路短路短路短路)|OR OR(非短路非短路非短路非短路)XOR XOR(异或)(异或)(异或)(异或)true true 测试测试测试测试 true true 值值值值(重(重(重(重载时载时载时载时使用)使用)使用)使用)false false 测试测试测试测试 false false 值值值值(重(重
49、(重(重载时载时载时载时使用)使用)使用)使用)位操作符与位操作表达式位操作符与位操作表达式 位操作符用位模式来操作整型数位操作符用位模式来操作整型数。运运运运 算算算算 符符符符描描描描 述述述述运运运运 算算算算 符符符符描描描描 述述述述右移位右移位右移位右移位|OROR左移位左移位左移位左移位 XOR XOR(异或)(异或)(异或)(异或)&ANDAND 取反取反取反取反扩充后的赋值扩充后的赋值运算符与赋值表达式运算符与赋值表达式扩充后的赋值运算符与赋值表达式。扩充后的赋值运算符与赋值表达式。运运运运 算算算算 符符符符描描描描 述述述述运运运运 算算算算 符符符符描描描描 述述述述=
50、赋值赋值赋值赋值=右移右移右移右移赋值赋值赋值赋值-=-=减法减法减法减法赋值赋值赋值赋值&=&=AND AND 位操作位操作位操作位操作赋值赋值赋值赋值*=乘法乘法乘法乘法赋值赋值赋值赋值|=|=OR OR 位操作位操作位操作位操作赋赋赋赋值值值值/=/=除法除法除法除法赋值赋值赋值赋值=XOR XOR 位操作位操作位操作位操作赋值赋值赋值赋值%=%=取模取模取模取模赋值赋值赋值赋值条件运算符与条件表达式条件运算符与条件表达式 条件运算符是唯一有条件运算符是唯一有3个操作数的运算符,所以有个操作数的运算符,所以有时又称为三元运算符。时又称为三元运算符。对条件表达式对条件表达式b?x:y,先计