《第2章语言的基本语法PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第2章语言的基本语法PPT讲稿.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章语言的基本语法第1页,共74页,编辑于2022年,星期一第第 2 2 章章 JavaJava语言的基本语法语言的基本语法2.1 2.1 标识符和关键字标识符和关键字2.2 2.2 常量与变量常量与变量2.3 2.3 数据类型转换数据类型转换2.4 2.4 运算符运算符2.5 2.5 字符串字符串2.6 2.6 数组数组第2页,共74页,编辑于2022年,星期一JavaJava的基本语法的基本语法(1)(1)n java java代码的位置代码的位置 n javajava是严格区分大小写的是严格区分大小写的 n javajava是一种自由格式的语言是一种自由格式的语言 代码分为结构定义语句
2、和功能执行语句。代码分为结构定义语句和功能执行语句。功能执行语句的最后必须用分号结束。功能执行语句的最后必须用分号结束。n javajava程序有三种注释方式程序有三种注释方式第3页,共74页,编辑于2022年,星期一2.1 2.1 标识符和关键字标识符和关键字JavaJava语言中的类名、对象名、方法名、常量名和变语言中的类名、对象名、方法名、常量名和变量名统称为标识符。标识符由程序员定义,可以由字母、量名统称为标识符。标识符由程序员定义,可以由字母、数字、下划线(数字、下划线(_ _)和()和($)符号组成,但是标识符的第)符号组成,但是标识符的第一个字符不允许为数字,只允许为字母、下划线
3、(一个字符不允许为数字,只允许为字母、下划线(_ _)或(或($)符号。)符号。但标识符不能以数字开头,不能是关键字。但标识符不能以数字开头,不能是关键字。第4页,共74页,编辑于2022年,星期一javajava中的包、类、方法、参数和变量的名字,中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线可由任意顺序的大小写字母、数字、下划线(_)(_)和和美元符号美元符号($)($)组成,组成,合法的标识符:合法的标识符:indentifierindentifierusernameusernameuser_nameuser_name_userName_userName$us
4、ername$username非法的标识符:非法的标识符:classclass98.398.3Hello WorldHello World 2.1 2.1 标识符和关键字标识符和关键字第5页,共74页,编辑于2022年,星期一Java关键字abstractconstfinallyintpublicthisbooleancontinuefloatinterfacereturnthrowbreakdefaultforlongshortthrowsbytedogotonativestatictransientcasedoubleifnewstrictfptrycatchelseimplementsp
5、ackagesupervoidcharextendsimportprivateswitchvolatileclassfinalinstanceofprotectedsynchronizedwhile注:注:java java 无无sizeof,goto,const sizeof,goto,const 关键字,但不能用关键字,但不能用goto constgoto const作为变量名作为变量名第6页,共74页,编辑于2022年,星期一JavaJava标识符命名规则标识符命名规则为了提高程序的可读性,在定义标识符时,要尽量遵循为了提高程序的可读性,在定义标识符时,要尽量遵循“见其名知其意见其名知其
6、意“的原则。的原则。JavaJava标识符的具体命名规则如下:标识符的具体命名规则如下:n一个标识符可以由几个单词连接而成,以表明它的意思。一个标识符可以由几个单词连接而成,以表明它的意思。n对于类名,每个单词的首字母都要大写,其他字母则小对于类名,每个单词的首字母都要大写,其他字母则小写,例如写,例如RecordInfoRecordInfo。n对于方法名和变量名,与类名有些相似,除了第一个单词的首对于方法名和变量名,与类名有些相似,除了第一个单词的首字母小写外,其他单词的首字母都要大写,例如字母小写外,其他单词的首字母都要大写,例如getRecordName()getRecordName()
7、。第7页,共74页,编辑于2022年,星期一JavaJava标识符命名规则标识符命名规则n对于常量名,每个单词的每个字母都要大写,如果由多个对于常量名,每个单词的每个字母都要大写,如果由多个单词组成,通常情况下单词之间用下划线(单词组成,通常情况下单词之间用下划线(_ _)分隔,例如)分隔,例如MAX_VALUEMAX_VALUE。n对于包名,每个单词的每个字母都要小写,例如对于包名,每个单词的每个字母都要小写,例如com.framecom.frame。第8页,共74页,编辑于2022年,星期一2.2 2.2 常量与变量常量与变量常量和变量在程序代码中随处可见,下面就具常量和变量在程序代码中随
8、处可见,下面就具体讲解常量和变量的概念及使用要点,从而达到区体讲解常量和变量的概念及使用要点,从而达到区别常量和变量的目的。别常量和变量的目的。第9页,共74页,编辑于2022年,星期一2.2.1 2.2.1 常量的概念及使用要点常量的概念及使用要点所谓常量,就是值永远不允许被改变的量。如果要声所谓常量,就是值永远不允许被改变的量。如果要声明一个常量,就必须用关键字明一个常量,就必须用关键字finalfinal修饰,声明常量的具体方修饰,声明常量的具体方式如下:式如下:final final 常量类型常量类型 常量标识符常量标识符;例如:例如:final int YOUTH_AGE;/fina
9、l int YOUTH_AGE;/声明一个声明一个intint型常量型常量final float PIE;final float PIE;/声明一个声明一个floatfloat型常量型常量注意:按照注意:按照JavaJava命名规则,常量标识符所有的字符都要命名规则,常量标识符所有的字符都要大写,各个单词之间用下划线大写,各个单词之间用下划线 _ _ 分隔分隔第10页,共74页,编辑于2022年,星期一常量常量在声明常量时,通常情况下立即为其赋值,即立即在声明常量时,通常情况下立即为其赋值,即立即对常量进行初始化,声明并初始化常量的具体方式如下:对常量进行初始化,声明并初始化常量的具体方式如下
10、:final final 常量类型常量类型 常量标识符常量标识符 =常量值常量值;例如:例如:final int YOUTH_AGE=18;/final int YOUTH_AGE=18;/声明声明intint型常量,初始化为型常量,初始化为1818final float PIE=3.14F /final float PIE=3.14F /声明声明floatfloat型常量,初始化为型常量,初始化为3.143.14说明:说明:为为floatfloat型常量赋值时,需要在数值的后型常量赋值时,需要在数值的后面加上一个字母面加上一个字母“F F”或或“f f”。第11页,共74页,编辑于2022年
11、,星期一常量常量声明多个同一类型的常量,可以采用下面的形式:声明多个同一类型的常量,可以采用下面的形式:final final 常量类型常量类型 常量常量1=1=常量值常量值1,1,常量常量2=2=常量值常量值2,2,;例如:例如:final int NUM1=14,NUM2=25,NUM3=36;final int NUM1=14,NUM2=25,NUM3=36;注意:注意:如果在声明常量时已经对其进行了初始化,如果在声明常量时已经对其进行了初始化,则常量的值不允许再被修改则常量的值不允许再被修改 第12页,共74页,编辑于2022年,星期一常量常量n整型常量整型常量十进制(十进制(1212
12、),十六进制,十六进制 (0 x120 x12),八进制(),八进制(012012)n长整型常量长整型常量13L13Ln单精度浮点数单精度浮点数 5.1f5.1f,.4f.4f,2e3f 2e3f,0f0fn双精度浮点数双精度浮点数 5.15.1,.4.4,2e-32e-3,0d0dn布尔常量布尔常量 truetrue和和false false 第13页,共74页,编辑于2022年,星期一常量常量n字符常量字符常量 a a ,8 8,u0027 u0027 rr表示接受键盘输入,相当于按下了回车键;表示接受键盘输入,相当于按下了回车键;nn是换行;是换行;tt是制表符,相当于是制表符,相当于t
13、abletable键;键;bb是退格键,相当于是退格键,相当于Back SpaceBack Space;是单引号,而是单引号,而“是双引号;是双引号;是一个斜杠是一个斜杠“”。n字符串常量字符串常量 “Hello WorldHello World“,”123123”,Welcome nXXXWelcome nXXXnnullnull常量常量 nullnull常量只有一个值,用常量只有一个值,用nullnull表示,表示对象的引用为空表示,表示对象的引用为空 第14页,共74页,编辑于2022年,星期一2.2.2 2.2.2 变量的概念及变量的概念及作用作用所谓变量,就是值可以被改变的量。声明变
14、量的所谓变量,就是值可以被改变的量。声明变量的具体方式如下:具体方式如下:变量类型变量类型 变量标识符变量标识符;例如:例如:注意:定义变量名时,按照注意:定义变量名时,按照JavaJava的命名规则,第一个单词的首字母小写,的命名规则,第一个单词的首字母小写,其他单词的首字母大写,例如其他单词的首字母大写,例如 “partyMemberAgepartyMemberAge”。Stringname;/声明String型变量intpartyMemberAge;/声明int型变量第15页,共74页,编辑于2022年,星期一2.2.2 2.2.2 变量的概念及变量的概念及作用作用n变变量量就就是是系系
15、统统为为程程序序分分配配的的一一块块内内存存单单元元,用用来来存存储储各各种种类类型型的的数数据据。根根据据所所存存储储的的数数据据类类型型的的不不同同,有有各各种种不不同同类类型型的的变变量量。变变量量名名代代表表这这块块内存中的数据内存中的数据 。nint x=0,y;int x=0,y;y=x+3 y=x+3;执行这两条语句的过程中,内存分配及变化情况。执行这两条语句的过程中,内存分配及变化情况。X X在被取值前必须被初始化。在被取值前必须被初始化。第16页,共74页,编辑于2022年,星期一javajava的变量类型的变量类型数据类型基本数据类型引用数据类型数值型字符型(char)布尔
16、型(boolean)整数类型(byte,short,int,long)浮点类型(float,double)类(class)接口(interface)数组第17页,共74页,编辑于2022年,星期一变量字节大小及有效取值范围变量字节大小及有效取值范围nbytebyte占用一个字节,数字大小为占用一个字节,数字大小为-2-27 72 27 7-1-1nshortshort占用两个字节,数字大小为占用两个字节,数字大小为-2-215152 21515-1-1 nintint占用四个字节,数字大小为占用四个字节,数字大小为-2-231312 23131-1-1 nlonglong占用八个字节,数字大小
17、为占用八个字节,数字大小为-2-263632 26363-1-1 nfloatfloat占用四个字节,数字大小为占用四个字节,数字大小为1.4E-453.4E+38,-1.4E-45-3.4E+38 1.4E-453.4E+38,-1.4E-45-3.4E+38。用二进制的指数形式表示一个浮点数的格式,如:。用二进制的指数形式表示一个浮点数的格式,如:101*2101*22 2 ,101*2,101*2-3-3ndoubledouble占用八个字节,数字大小为占用八个字节,数字大小为4.9E-3241.7E+308,-4.9E-324-4.9E-3241.7E+308,-4.9E-324-1.
18、7E+308 1.7E+308。ncharchar占两个字节,数字大小为占两个字节,数字大小为0 02 21616-1-1,是,是unicodeunicode编码。字符的本来面目,编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。我们为什么可以直接将一个数字赋给字符变量。nBooleanBoolean占一个字节,其取值只有两个,占一个字节,其取值只有两个,truetrue和和falsefalse。第18页,共74页,编辑于2022年,星期一2.2.3 2.2.3 基本基本JavaJava数据类型数据类型nJavaJava定义了定义了8 8个简单个简单(或基本或基本)的数据类型:字
19、节型的数据类型:字节型(byte)(byte),短整型,短整型(short)(short),整型,整型(int)(int),长整型,长整型(long)(long),字符型,字符型(char)(char),浮点型,浮点型(float)(float),双精度型,双精度型(double)(double),布尔型,布尔型(boolean)(boolean),这些类型可分为,这些类型可分为4 4组。组。n整数:整数:该组包括字节型该组包括字节型(byte)(byte),短整型,短整型(short)(short),整型,整型(int)(int),长整型长整型(long)(long),它们是有符号整数。,它
20、们是有符号整数。n浮点型数:浮点型数:该组包括单精度浮点型该组包括单精度浮点型(float)(float)和双精度浮点型和双精度浮点型(double)(double),它们代表有小数精度要求的数字。,它们代表有小数精度要求的数字。n字符:字符:该组包括字符型该组包括字符型(char)(char),它代表字符集的符号,例如,它代表字符集的符号,例如字母和数字。字母和数字。n布尔型:布尔型:该组包括布尔型该组包括布尔型(boolean)(boolean),它是一种特殊的类型,它是一种特殊的类型,表示真表示真/假值。假值。第19页,共74页,编辑于2022年,星期一2.2.3 2.2.3 基本基本J
21、avaJava数据类型数据类型n(1)(1)整数整数bytebyte,shortshort,intint,longlongnJavaJava定义了定义了4 4个整数类型:字节型个整数类型:字节型(byte)(byte)、短整型、短整型(short)(short)、整、整型型(int)(int)、长整型、长整型(long)(long)。这些都是有符号的值,数值为正。这些都是有符号的值,数值为正数或是负数。数或是负数。Java Java 不支持只能是正的无符号的整数。许多不支持只能是正的无符号的整数。许多其他计算机语言,包括其他计算机语言,包括C/C+C/C+,支持有符号或无符号的整数。,支持有符
22、号或无符号的整数。然而,无符号整数是不必要的。具体地说,无符号概念主然而,无符号整数是不必要的。具体地说,无符号概念主要被用来指定高位状态,它定义了当要被用来指定高位状态,它定义了当intint表示一个数字时的表示一个数字时的符号。符号。第20页,共74页,编辑于2022年,星期一2.2.3 2.2.3 基本基本JavaJava数据类型数据类型n(2)(2)浮点型数浮点型数floatfloat,doubledoublen浮点数字也就是我们所熟知的实数。在浮点数字也就是我们所熟知的实数。在JavaJava中表示这些实数的方中表示这些实数的方法是采用两类浮点数据类型,一类是单精度浮点类型法是采用两
23、类浮点数据类型,一类是单精度浮点类型(float)(float),一类是双精度浮点类型一类是双精度浮点类型(double)(double),JavaJava实现浮点数采用的是实现浮点数采用的是标准浮点型标准浮点型(IEEE-754)(IEEE-754)和运算符集,并且是独立于平台的。和运算符集,并且是独立于平台的。第21页,共74页,编辑于2022年,星期一2.2.3 2.2.3 基本基本JavaJava数据类型数据类型n(3)(3)字符字符charcharn在在JavaJava中,存储字符的数据类型是中,存储字符的数据类型是charchar。nJavaJava的的charchar与与C C或
24、或C+C+中的中的charchar不同。在不同。在C/C+C/C+中,中,charchar的宽度是的宽度是8 8位,位,但但JavaJava的情况不同。的情况不同。JavaJava使用使用UnicodeUnicode码代表字符。码代表字符。UnicodeUnicode定义定义的国际化的字符集能表示迄今为止人类语言的所有字符集。它是几十个的国际化的字符集能表示迄今为止人类语言的所有字符集。它是几十个字符集的统一,因此它要求字符集的统一,因此它要求1616位。这样,位。这样,JavaJava中的中的charchar类型是类型是1616位的,位的,其范围是其范围是065536065536。人们熟知的
25、标准字符集。人们熟知的标准字符集ASCII ASCII 码的范围仍然是码的范围仍然是01270127,扩展的位字符集,扩展的位字符集ISO-Latin-1ISO-Latin-1的范围是的范围是02550255。既然。既然JavaJava被被设计为允许其开发的设计为允许其开发的Applet(Applet(小应用程序小应用程序)在世界范围内使用,因在世界范围内使用,因此使用此使用UnicodeUnicode码代表字符是说得通的。当然,码代表字符是说得通的。当然,UnicodeUnicode的使用对的使用对于英语、德语、西班牙语或法语的语言是有点低效,因为它们的字于英语、德语、西班牙语或法语的语言是
26、有点低效,因为它们的字符能容易地被包含在符能容易地被包含在8 8位以内。但是为了全球的可移植性,这一位以内。但是为了全球的可移植性,这一点代价是必须的。点代价是必须的。第22页,共74页,编辑于2022年,星期一2.2.32.2.3 基本基本JavaJava数据类型数据类型n(4)(4)布尔型布尔型booleanbooleann在在JavaJava中定义了一种基本数据类型中定义了一种基本数据类型booleanboolean来表示逻辑值,它只来表示逻辑值,它只有两个文字值即有两个文字值即truetrue和和falsefalse,以下是一个有关,以下是一个有关booleanboolean类型变类型
27、变量的声明和初始化:量的声明和初始化:nboolean isClosed=false;/boolean isClosed=false;/定义一个定义一个booleanboolean型变量型变量isClosedisClosed并把其初始化成并把其初始化成falsefalsen需要特别指出的是在整数类型和需要特别指出的是在整数类型和booleanboolean类型之间无转换计算。类型之间无转换计算。有些语言有些语言(特别值得强调的是特别值得强调的是C C和和C+)C+)允许将数字值转换成逻辑值,允许将数字值转换成逻辑值,这在这在JavaJava编程语言中是不允许的;编程语言中是不允许的;boole
28、anboolean类型只允许使用类型只允许使用booleanboolean值,即只允许使用值,即只允许使用truetrue和和falsefalse。第23页,共74页,编辑于2022年,星期一变量的生命周期与作用域变量的生命周期与作用域变量要先定义,后使用,但也不是在变量定变量要先定义,后使用,但也不是在变量定义后的语句一直都能使用前面定义的变量。我们义后的语句一直都能使用前面定义的变量。我们可以用大括号将多个语句包起来形成一个复合语可以用大括号将多个语句包起来形成一个复合语句,变量只能在定义它的复合语句中使用。句,变量只能在定义它的复合语句中使用。第24页,共74页,编辑于2022年,星期一
29、变量的生命周期与作用域变量的生命周期与作用域public class TestScopepublic class TestScope public static void main(String args)public static void main(String args)int x=12;int x=12;int q=96;/x int q=96;/x和和q q都可用都可用 int x=3;int x=3;/错误的定义,错误的定义,JavaJava中不允许有这种嵌套定义中不允许有这种嵌套定义 System.out.println(x is+x);System.out.println(x
30、is+x);System.out.println(q is+q);System.out.println(q is+q);q=x;q=x;/*/*错误的行,只有错误的行,只有x x可用,可用,q q 超出了作用域范围超出了作用域范围*/System.out.println(x is+x);System.out.println(x is+x);第25页,共74页,编辑于2022年,星期一2.3 2.3 数据类型之间的相互转换数据类型之间的相互转换所谓数据类型之间的相互转换,就是将变量从当所谓数据类型之间的相互转换,就是将变量从当前的数据类型转换为其他数据类型。前的数据类型转换为其他数据类型。在在J
31、avaJava中数据类型之间的相互转换可以分为以下中数据类型之间的相互转换可以分为以下3 3种种情况:情况:n基本数据类型之间的相互转换;基本数据类型之间的相互转换;n字符串与其他数据类型之间的相互转换;字符串与其他数据类型之间的相互转换;n引用数据类型之间的相互转换。引用数据类型之间的相互转换。说明:说明:这里只介绍基本数据类型之间的相互转换,这里只介绍基本数据类型之间的相互转换,其他两种情况将在相关的章节中介绍。其他两种情况将在相关的章节中介绍。第26页,共74页,编辑于2022年,星期一2.3 2.3 数据类型之间的相互转换数据类型之间的相互转换在对多个基本数据类型的数据进行混合运算时,
32、如果在对多个基本数据类型的数据进行混合运算时,如果这几个数据并不属于同一基本数据类型,需要先将它们转换这几个数据并不属于同一基本数据类型,需要先将它们转换为统一的数据类型,然后才能进行运算。为统一的数据类型,然后才能进行运算。基本数据类型之间的相互转换又分为两种情况:基本数据类型之间的相互转换又分为两种情况:n自动类型转换自动类型转换n强制类型转换。强制类型转换。第27页,共74页,编辑于2022年,星期一2.3 2.3 数据类型之间的相互转换数据类型之间的相互转换n自动类型转换(也叫隐式类型转换)自动类型转换(也叫隐式类型转换)n强制类型转换(也叫显式类型转换)强制类型转换(也叫显式类型转换
33、)n类型转换的原理类型转换的原理 及什么时候要用及什么时候要用 强制类型转换强制类型转换第28页,共74页,编辑于2022年,星期一2.3 2.3 数据类型之间的相互转换数据类型之间的相互转换n表达式的数据类型自动提升表达式的数据类型自动提升n所有的所有的bytebyte型、型、shortshort型和型和charchar的值将被提升到的值将被提升到intint型。型。n如果一个操作数是如果一个操作数是longlong型,计算结果就是型,计算结果就是longlong型;型;n如果一个操作数是如果一个操作数是floatfloat型,计算结果就是型,计算结果就是floatfloat型;型;n如果一
34、个操作数是如果一个操作数是doubledouble型,计算结果就是型,计算结果就是doubledouble型。型。n分析分析 System.out.println(System.out.println(a a+1)+1)与与 System.out.println(System.out.println(“”+a a+1)+1)的区别。的区别。第29页,共74页,编辑于2022年,星期一函数函数n函数(子程序)的概念与作用。函数(子程序)的概念与作用。n定义一个函数的格式定义一个函数的格式 n编写打印三个矩形的程序(用流水帐的方式与用函数编写打印三个矩形的程序(用流水帐的方式与用函数的方式进行对比
35、分析的方式进行对比分析)。)。第30页,共74页,编辑于2022年,星期一函数函数返回值类型返回值类型 函数名(参数类型函数名(参数类型 形式参数形式参数1 1,参数类型,参数类型 形式参数形式参数2 2,.)程序代码程序代码 return return 返回值;返回值;其中:其中:形式参数:在方法被调用时用于接收外部传入的数据的变量。形式参数:在方法被调用时用于接收外部传入的数据的变量。参数类型:就是该形式参数的数据类型。参数类型:就是该形式参数的数据类型。返回值:方法在执行完毕后返还给调用它的程序的数据。返回值:方法在执行完毕后返还给调用它的程序的数据。返回值类型:函数要返回的结果的数据类
36、型。返回值类型:函数要返回的结果的数据类型。实参:调用函数时实际传给函数形式参数的数据。实参:调用函数时实际传给函数形式参数的数据。n如何理解函数返回值类型为如何理解函数返回值类型为voidvoid的情况的情况 第31页,共74页,编辑于2022年,星期一函数的调用函数的调用n函数调用的格式函数调用的格式n在函数中使用在函数中使用returnreturn提前返回提前返回n函数调用的过程分析函数调用的过程分析第32页,共74页,编辑于2022年,星期一函数的重载函数的重载n函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要它们的参数个函数的重载就是在同一个类中允许同时存在一个以上的同
37、名函数,只要它们的参数个数或类型不同即可。数或类型不同即可。如:如:public class Testpublic class Test public static void main(String args)public static void main(String args)int isum;int isum;double fsum;double fsum;isum=add(3,5);isum=add(3,5);isum=add(3,5,6);isum=add(3,5,6);fsum=add(3.2,6.5);fsum=add(3.2,6.5);public static int add
38、(int x,int y)public static int add(int x,int y)reutrn x+y;reutrn x+y;public static int add(int x,int y,int z)public static int add(int x,int y,int z)return x+y+z;return x+y+z;public static double add(double x,double y)public static double add(double x,double y)return x+y;return x+y;第33页,共74页,编辑于2022
39、年,星期一2.4运算符JavaJava语言中的运算符主要包括:语言中的运算符主要包括:n赋值运算符赋值运算符n算术运算符算术运算符n关系运算符关系运算符n逻辑运算符逻辑运算符n位运算符位运算符下面介绍各个运算符的使用方法。下面介绍各个运算符的使用方法。第34页,共74页,编辑于2022年,星期一2.4.1赋值运算符赋值运算符的符号为赋值运算符的符号为“=”,它的作用是将数据、,它的作用是将数据、变量、对象赋值给相应类型的变量,例如下面的代变量、对象赋值给相应类型的变量,例如下面的代码:码:赋值运算符的运算顺序为从右到左。例如在下赋值运算符的运算顺序为从右到左。例如在下面的代码中,首先是计算表达
40、式面的代码中,首先是计算表达式“9412+759412+75”的和,的和,然后将计算结果赋值给变量然后将计算结果赋值给变量resultresult:inti=75;/将数据赋值给变量longl=i;/将变量赋值给变量Objectobject=newObject();/创建对象intresult=9412+75;第35页,共74页,编辑于2022年,星期一赋值运算符如果两个变量的值相同,也可以采用下面的方式如果两个变量的值相同,也可以采用下面的方式完成赋值操作:完成赋值操作:intx,y;/声明两个int型变量x=y=0;/为两个变量同时赋值第36页,共74页,编辑于2022年,星期一2.4.2
41、算术运算符算术运算符支持整数型数据和浮点数型数据的运算,当算术运算符支持整数型数据和浮点数型数据的运算,当整数型数据与浮点数型数据之间进行算术运算时,整数型数据与浮点数型数据之间进行算术运算时,JavaJava会自动会自动完成数据类型的转换,并且计算结果为浮点数型。完成数据类型的转换,并且计算结果为浮点数型。运运 算算 符符功功 能能举举 例例运运 算算 结结 果果结结 果果 类类 型型+加法运算加法运算10+7.517.5double-减法运算减法运算10 7.5F2.5Ffloat*乘法运算乘法运算3*721int/除法运算除法运算21/3L7Llong%求余运算求余运算10%31int第
42、37页,共74页,编辑于2022年,星期一算术运算符在进行算术运算时,有两种情况需要考虑:在进行算术运算时,有两种情况需要考虑:n没有小数参与运算没有小数参与运算n有小数参与运算。有小数参与运算。第38页,共74页,编辑于2022年,星期一没有小数参与运算在对整数型数据或变量进行加法(在对整数型数据或变量进行加法(+)、减法()、减法(-)和乘法(和乘法(*)运算时,与数学中的运算方式完全相同,但)运算时,与数学中的运算方式完全相同,但是在整数之间进行除法(是在整数之间进行除法(/)和求余()和求余(%)运算时需要注)运算时需要注意几个问题。意几个问题。n注意除法运算注意除法运算n注意求余运算
43、注意求余运算n关于关于0 0的问题的问题第39页,共74页,编辑于2022年,星期一除法运算在整数类型的数据和变量之间进行除法运算时,无在整数类型的数据和变量之间进行除法运算时,无论能否整除,运算结果都将是一个整数,而且这个整数论能否整除,运算结果都将是一个整数,而且这个整数不是通过四舍五入得到的,而是简单地去掉小数部分。不是通过四舍五入得到的,而是简单地去掉小数部分。例如通过下面的代码分别计算例如通过下面的代码分别计算1010除以除以3 3和和5 5除以除以2 2,最,最终输出的运算结果依次为终输出的运算结果依次为3 3和和2 2:System.out.println(10/3);/输出运算
44、结果为3System.out.println(5/2);/输出运算结果为2第40页,共74页,编辑于2022年,星期一求余运算在整数类型的数据和变量之间进行求余(在整数类型的数据和变量之间进行求余(%)运算)运算时,运算结果是数学运算中余数。时,运算结果是数学运算中余数。例如通过下面的代码分别计算例如通过下面的代码分别计算10%310%3、10%510%5和和10%710%7,最终输出的运算结果依次为,最终输出的运算结果依次为1 1、0 0和和3 3:System.out.println(10%3);/输出运算结果为1System.out.println(10%5);/输出运算结果为0Syst
45、em.out.println(10%7);/输出运算结果为3第41页,共74页,编辑于2022年,星期一关于0的问题与数学运算一样,与数学运算一样,0 0可以做被除数,但是不可以做除数。当可以做被除数,但是不可以做除数。当0 0做做被除数时,无论是除法运算,还是求余运算,运算结果都为被除数时,无论是除法运算,还是求余运算,运算结果都为0 0。例如通过下面的代码分别计算例如通过下面的代码分别计算0 0除以除以6 6和和0 0除以除以6 6求余数,最终求余数,最终输出的运算结果均为输出的运算结果均为0 0:注意:注意:如果如果0 0做除数,虽然可以编译成功,但是在运行时会抛出做除数,虽然可以编译成
46、功,但是在运行时会抛出java.lang.ArithmeticExceptionjava.lang.ArithmeticException异常,即算术运算异常。异常,即算术运算异常。System.out.println(0/6);/输出运算结果为0System.out.println(0%6);/输出运算结果为0第42页,共74页,编辑于2022年,星期一有小数参与运算在对浮点数类型的数据或变量进行算术运算时,如果在对浮点数类型的数据或变量进行算术运算时,如果在算术表达式中含有在算术表达式中含有doubledouble类型的数据或变量,则运算类型的数据或变量,则运算结果为结果为doubledo
47、uble型,否则运算结果为型,否则运算结果为floatfloat型。型。在对浮点数类型数据或变量进行算术运算时,计算机在对浮点数类型数据或变量进行算术运算时,计算机的计算结果可能会在小数点后包含的计算结果可能会在小数点后包含n n位小数,这些小数在有位小数,这些小数在有些时候并不是精确的,计算机的计算结果会与数学运算的结果些时候并不是精确的,计算机的计算结果会与数学运算的结果存在一定的误差,只能是尽量接近数学运算中的结果。存在一定的误差,只能是尽量接近数学运算中的结果。第43页,共74页,编辑于2022年,星期一有小数参与运算如果被除数为浮点型数据或变量,无论是除法运如果被除数为浮点型数据或变
48、量,无论是除法运算,还是求余运算,算,还是求余运算,0 0都可以做除数。如果是除法运算,都可以做除数。如果是除法运算,当被除数是正数时,运算结果为当被除数是正数时,运算结果为InfinityInfinity,表示无穷大,表示无穷大,当被除数是负数时,运算结果为当被除数是负数时,运算结果为-Infinity-Infinity,表示无穷小;,表示无穷小;如果是求余运算,运算结果为如果是求余运算,运算结果为NaNNaN,表示非数字。,表示非数字。例如下面的代码:例如下面的代码:System.out.println(7.5/0);/输出的运算结果为InfinitySystem.out.println(
49、-7.5/0);/输出的运算结果为-InfinitySystem.out.println(7.5%0);/输出的运算结果为NaNSystem.out.println(-7.5%0);/输出的运算结果为NaN第44页,共74页,编辑于2022年,星期一2.4.3关系运算符关系运算符用于比较大小,运算结果为关系运算符用于比较大小,运算结果为booleanboolean型,型,当关系表达式成立时,运算结果为当关系表达式成立时,运算结果为truetrue,否则运算结果为,否则运算结果为falsefalse。运算符功能举例结果可运算数据类型大于a bfalse整数、浮点数、字符小于2=大于或等于6.6=
50、8.8false整数、浮点数、字符=小于或等于M=88true整数、浮点数、字符要注意关系运算符“=”和赋值运算符“=”的区别!第45页,共74页,编辑于2022年,星期一2.4.4逻辑运算符逻辑运算符用于对逻辑运算符用于对booleanboolean型数据进行运算,运算型数据进行运算,运算结果仍为结果仍为booleanboolean型。型。JavaJava中的逻辑运算符包括:中的逻辑运算符包括:n!(取反)(取反)n(异或)(异或)n&(与)(与)n|(或)(或)n&(简洁与)(简洁与)n|(简洁或)(简洁或)下面将依次介绍各个运算符的用法和特点下面将依次介绍各个运算符的用法和特点。第46页