第2章Java语言基础课件.ppt

上传人:飞****2 文档编号:69948995 上传时间:2023-01-12 格式:PPT 页数:92 大小:487KB
返回 下载 相关 举报
第2章Java语言基础课件.ppt_第1页
第1页 / 共92页
第2章Java语言基础课件.ppt_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《第2章Java语言基础课件.ppt》由会员分享,可在线阅读,更多相关《第2章Java语言基础课件.ppt(92页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、v学习导读学习导读 本章是学习本章是学习Java语言的基础,通过本章的学习,能语言的基础,通过本章的学习,能够深入了解够深入了解Java程序的语言要素,并掌握程序的语言要素,并掌握Java语言中的语言中的控制结构、数组及字符串,同时能够灵活运用控制结构、数组及字符串,同时能够灵活运用Java语言语言提供的各种数据类型和运算符。提供的各种数据类型和运算符。第第2章章 Java语言基础语言基础2.1 Java语言要素语言要素 2.1.1 标识符标识符 2.1.2 关键字关键字 2.1.3 分隔符分隔符 2.1.4 注释注释 2.2 基本数据类型基本数据类型 2.2.1 简单类型简单类型 2.2.2

2、 引用类型引用类型 2.2.3 常量常量 2.2.4 变量变量 2.3 运算符和表达式运算符和表达式 2.3.1 算术运算符算术运算符 2.3.2 关系运算符关系运算符 第第2章章 Java语言基础语言基础2.3.3 逻辑运算符逻辑运算符 2.3.4 位运算符位运算符 2.3.5 赋值运算符赋值运算符 2.3.6 其他运算符其他运算符 2.3.7 运算符的优先级与结运算符的优先级与结合性合性 2.3.8 表达式与语句表达式与语句 2.4 控制语句控制语句 2.4.1 选择结构控制语句选择结构控制语句 2.4.2 循环结构控制语句循环结构控制语句 2.4.3 转移语句转移语句 2.5 数组数组

3、2.5.1 一维数组一维数组 2.5.2 二维数组二维数组 2.5.3 多维数组多维数组 2.6 字符串字符串 2.6.1 字符串类字符串类 2.6.2 常用方法常用方法 2.7 综合应用实例综合应用实例2.8 本章小结本章小结 2.1 Java语言要素语言要素2.1.1 标识符标识符v标识符标识符(identifier)是标示类、方法或者变量的名称。在是标示类、方法或者变量的名称。在Java中,字母、数字、下划线、美元符号中,字母、数字、下划线、美元符号($)都可以作为标识符的都可以作为标识符的一部分,但不能以数字开头,且一部分,但不能以数字开头,且严格区分大、小写字母严格区分大、小写字母。

4、v几个合法的标识符:几个合法的标识符:sum TotalTmpCount average b2 v不合法的有:不合法的有:ajavadoc first.java 注意:文档注释时,所有的文档标记,都以注意:文档注释时,所有的文档标记,都以“”标志开始。标志开始。在一个文档注释中,也可以使用其它的标准在一个文档注释中,也可以使用其它的标准HTML标记。标记。2.2 Java基本数据基本数据类类型型vJava支持多种数据类型,分成基本数据类型和引用类型两大支持多种数据类型,分成基本数据类型和引用类型两大类,如下图所示。类,如下图所示。vJava中,定义了中,定义了8种基本的数据类型:字符型、短整型

5、、整种基本的数据类型:字符型、短整型、整型、长整型、字符型、浮点型、双精度型、布尔型。型、长整型、字符型、浮点型、双精度型、布尔型。v这些基本类型都有这些基本类型都有固定固定的格式和的格式和大小大小,是跨平台的,没有依,是跨平台的,没有依赖性。这是产生赖性。这是产生Java程序跨平台的重要特性。程序跨平台的重要特性。简单简单类类型型(1)整数)整数类类型型 Java定义的整数类型有:定义的整数类型有:字节型(字节型(byte),),1个字节个字节短整型(短整型(short),),2个字节个字节整型(整型(int),),4 个字节个字节长整型(长整型(long),),8个字节个字节 它们都是有符

6、号的。它们都是有符号的。Java不支持仅仅是正的无符号整数。不支持仅仅是正的无符号整数。v字节型(字节型(byte):):通过关键字通过关键字byte定义字节型的变量,用它定义一个字符定义字节型的变量,用它定义一个字符型的变量型的变量n的格式是:的格式是:byte n;v短整型(短整型(short):):这种类型主要用于这种类型主要用于16位计算机。用它定义短整型变量位计算机。用它定义短整型变量r格式是:格式是:short r;v整型(整型(int):):整型变量通常被用于控制循环及数组下标。在任何时候,整型变量通常被用于控制循环及数组下标。在任何时候,如果整数表达式中包含有如果整数表达式中包

7、含有byte、short、int或者常量数字,或者常量数字,在计算前,所有表达式的类型将被提升到在计算前,所有表达式的类型将被提升到int。定义变量的格。定义变量的格式与前三种类型一样。式与前三种类型一样。v长整型(长整型(long):):长整型数据的范围是相当大的,足以进行天文计算。长整型数据的范围是相当大的,足以进行天文计算。(2)浮点类型)浮点类型 浮浮点点型型(Floating-Point Types)数数据据,也也称称为为实实型型(real)数数据据,当当计计算算有有精精度度要要求求时时使使用用。在在Java中中,有有两两种种浮浮点点类类型型:单单精精度度(float)浮浮点点型型和

8、和双双精精度度(double)浮浮点型。点型。v单单精精度度浮浮点点型型:占占32位位存存储储空空间间的的单单精精度度数数据据类类型型,取取值值范范围是围是3.4E-0383.4E+038。v双精度型:占用双精度型:占用64位存储空间,取值范围是位存储空间,取值范围是1.7E-3081.7E+308。(3)字符类型)字符类型v存存储储字字符符的的数数据据类类型型是是char(16个个字字节节,范范围围是是065535)。)。char没没有有负负数数,Java使使用用unicode码码来来代代表表字字符符。空空字字符符为为 u0000vunicode所所定定义义的的国国际际化化字字符符集集能能表

9、表示示迄迄今今为为止止人人类类语语言言的的所有字符集。所有字符集。注注意意:这这里里是是char类类型型而而不不是是字字符符串串类类型型(String),后后者者作为对象类型对待。作为对象类型对待。(4)布尔类型)布尔类型 布布尔尔型型是是一一种种表表示示逻逻辑辑值值的的简简单单类类型型,取取值值只只能能是是true(真真)或或 false(假假)两两个个值值中中的的一一个个。它它是是所所有有关关系系运运算算的的返返回回类类型型,对对管管理理if、for这这样样的的控控制制语语句句的的条条件件表表达达式式也也是是必必需需的。的。int flag=0;if(flag=0)/C/C+的语法允许这样

10、写的语法允许这样写 if(flag=0)/在在Java中必须这样写中必须这样写引用类型引用类型 引用类型相当于引用类型相当于C/C+中的指针类型,因此在引用类型中存中的指针类型,因此在引用类型中存放的是对象的存储地址,即对象的引用。如,放的是对象的存储地址,即对象的引用。如,public class First int x;public static void main(String args)First testone=new First();/testone即为引用类型即为引用类型 testone.x=100;v注意注意:基本类型存储在堆栈空间,而堆空间负责存储引用类基本类型存储在堆栈空间

11、,而堆空间负责存储引用类型型.2.2.3 常量和变量常量和变量v常量有整数型、浮点型、布尔型、字符及字符串、引用型。常量有整数型、浮点型、布尔型、字符及字符串、引用型。如:如:33 5.36 false k “This is a sentence”null v注注意意:true、false和和null不不能能用用作作类类名名、方方法法名名或或者者变变量量名名,用户自定义的变量也不能是系统关键字。用户自定义的变量也不能是系统关键字。2.2.3 常量和变量常量和变量(Cont.)v变量的值变量的值则是可以变化的,它的定义包括变量名、变量类型和则是可以变化的,它的定义包括变量名、变量类型和作用域作用

12、域几个部分。注意以下几点:几个部分。注意以下几点:(1 1)变量名必须是一个合法的标识符。变量名应具有一定的)变量名必须是一个合法的标识符。变量名应具有一定的含义,以增加程序的可读性。变量名称的定义必须符合以下几含义,以增加程序的可读性。变量名称的定义必须符合以下几个规则:个规则:变量名称是由变量名称是由unicodeunicode字母或数字组成的不间断字符序列字母或数字组成的不间断字符序列(中间不能有空格中间不能有空格),长度不限,且以,长度不限,且以字母字母/下划线下划线/$/$开头;开头;变量名称不能是系统关键字,不能是变量名称不能是系统关键字,不能是true,false,nulltru

13、e,false,null;在相同的作用域内,不能重复声明同一变量名。在相同的作用域内,不能重复声明同一变量名。(2 2)变量类型可以为前面所说的任意一种数据类型。)变量类型可以为前面所说的任意一种数据类型。(3 3)在)在JavaJava中,要使用变量,先声明中,要使用变量,先声明/定义变量。定义变量。(4 4)在在JavaJava程程序序中中定定义义变变量量后后,需需给给该该变变量量赋赋值值。变变量量赋赋值值方方式如下:式如下:变量名变量名=Java=Java表达式表达式;对于局部变量都不能没有初始值,否则无法编译通过)。对于局部变量都不能没有初始值,否则无法编译通过)。int i=0;/i

14、nt i(0);int i=0;/int i(0);void f()int i;i=i+1;对于域变量,在创建对象时系统会自动隐式赋初值。对于域变量,在创建对象时系统会自动隐式赋初值。对于参变量,由调用者给出变量初值。对于参变量,由调用者给出变量初值。(5)定定义义一一个个变变量量的的同同时时也也就就指指明明了了变变量量的的作作用用域域,变变量量的的作用域指明可访问该变量的一段代码。作用域指明可访问该变量的一段代码。在一个确定的域(一对花括弧在一个确定的域(一对花括弧标识)中,变量名应该是标识)中,变量名应该是唯一的。唯一的。不同类型变量的不同类型变量的初始化、作用域、生命周期、内存位置初始化

15、、作用域、生命周期、内存位置是是不同的:不同的:有一种例外情况,被有一种例外情况,被finalfinal但没有被但没有被staticstatic修饰的域变量必修饰的域变量必须显式地赋值。须显式地赋值。下下面面给给出出几几个个JavaJava程程序序的的例例子子,使使大大家家对对数数据据类类型型进进一步加深理解。一步加深理解。【例【例2.2.2】变量作用域变量作用域包装器类包装器类(Wrapper Classes)v所有的基本数据类型都有与之对应的包装器类,便于处理一所有的基本数据类型都有与之对应的包装器类,便于处理一些特殊应用些特殊应用.基本数据类型包装器类booleanjava.lang.B

16、ooleancharjava.lang.Characterbytejava.lang.Byteshortjava.lang.Shortintjava.lang.Integerlongjava.lang.Longfloatjava.lang.Floatdoublejava.lang.Double包装器类的功能包装器类的功能v作为处理各种基本数据类型数据的方法的宿主,如作为处理各种基本数据类型数据的方法的宿主,如:Integer.parseInt(String);Integer.toBinaryString(int);Integer.toBinaryString(int);v作为各种与基本数据类型

17、相关的命名常量的宿主,如作为各种与基本数据类型相关的命名常量的宿主,如:Integer.MAX_VALUE Integer.MAX_VALUE v将所对应的基本数据类型的值封装在对象中将所对应的基本数据类型的值封装在对象中v包装器类的对象是不可变的对象包装器类的对象是不可变的对象包装器类层次包装器类层次(Wrapper Classes Hierarchy)ObjectBooleanCharacterNumberByteShortIntegerLongFloatDoubleBoolean类类vBoolean类中静态方法:类中静态方法:static String toString(boolean

18、b)static String toString(boolean b)static Boolean valueOf(boolean b)static Boolean valueOf(boolean b)static Boolean valueOf(String s)static Boolean valueOf(String s)v获取获取Boolean类对象中类对象中boolean值的方法:值的方法:boolean booleanValue()boolean booleanValue()boolean bool=Boolean.TRUE.booleanValue();String boolSt

19、r=Boolean.toString(bool);Boolean boolObj1=Boolean.valueOf(boolStr);Boolean boolObj2=Boolean.valueOf(bool);2.3 运算符和表达式运算符和表达式v 运运算算符符有有4大大类类:算算术术运运算算符符、关关系系运运算算符符、位位运运算算符符和和逻辑运算符。逻辑运算符。v一些附加的运算符,用于处理那些特殊情况。一些附加的运算符,用于处理那些特殊情况。v表表达达式式:用用运运算算符符和和括括号号将将运运算算对对象象(或或者者成成为为操操作作数数)连连接接起起来来、符符合合Java语语法法规规则则的的

20、式式子子就就成成为为相相应应运运算算表表达达式。式。2.3 运算符和表达式运算符和表达式(Cont.)v运算符的分类运算符的分类运算符运算符算术运算符算术运算符通用运算符通用运算符自增、自减运算符自增、自减运算符关系运算符关系运算符逻辑运算符逻辑运算符类型判断运算符类型判断运算符位操作运算符位操作运算符条件运算符条件运算符赋值运算符赋值运算符字符串连接运算符字符串连接运算符实例创建运算符实例创建运算符2.3.1 算术运算符算术运算符v 算术运算符,主要用于数学表达式,其功能和用法与代算术运算符,主要用于数学表达式,其功能和用法与代数中的含义一样。数中的含义一样。vJava语言提供如下语言提供如

21、下12种算术运算符:种算术运算符:+(加法)、(加法)、-(减(减法)、法)、*(乘法)、(乘法)、/(除法)、(除法)、%(取模)、(取模)、+(递增)、(递增)、-(递减)、(递减)、+=(加法赋值)、(加法赋值)、-=(减法赋值)、(减法赋值)、*=(乘(乘法赋值)、法赋值)、/=(除法赋值)、(除法赋值)、%=(取模赋值)。(取模赋值)。需要注意下面这两种运算符:需要注意下面这两种运算符:v+、-分别是递增递减运算符,作用是使变量的值增加分别是递增递减运算符,作用是使变量的值增加1或者减少或者减少1,只能用于变量。,只能用于变量。其常用格式是:其常用格式是:+variable;-var

22、iable;或者:或者:variable+;variable-;v 赋值运算符是将基本算术运算符与赋值运算符相结合而成赋值运算符是将基本算术运算符与赋值运算符相结合而成的。的。有:有:+=、-=、*=、/=、%=,其涵义是,先进行相应的运算,其涵义是,先进行相应的运算,再将结果赋给变量。再将结果赋给变量。2.3.2 关系运算符关系运算符v 关系运算符,主要用于关系运算,来判断两个可以比较的关系运算符,主要用于关系运算,来判断两个可以比较的数据的数值关系。其结果是一个布尔量,常见于数据的数值关系。其结果是一个布尔量,常见于if语句及语句及循环语句中,用于判断条件是否符合。循环语句中,用于判断条件

23、是否符合。v6种关系运算符:种关系运算符:(小于)、(小于)、(大于)、(大于)、=(大于或(大于或等于)、等于)、=(等于)(等于)!=(不等于)。(不等于)。v注意:只有数字类型才可以进行大小比较。注意:只有数字类型才可以进行大小比较。v此外,布尔型变量的值只是此外,布尔型变量的值只是true或者或者false.不等同于非不等同于非0或者或者0。如。如if语句中的条件,形如:语句中的条件,形如:if(t!=0)或或 if(t=0)的方式的方式 而非而非if(t)或或 if(!t).2.3.3 位运算符位运算符 v位运算进行二进制位的运算,操作数可以是整型、字符型位运算进行二进制位的运算,操

24、作数可以是整型、字符型或者字节型,但是不可以是浮点型。或者字节型,但是不可以是浮点型。v位运算符主要有如下位运算符主要有如下13种:种:&(按位与)、(按位与)、|(按位或)、(按位或)、(按位异或)、(按位异或)、(按位(按位取反)、取反)、(符号扩展右移)、(符号扩展右移)、(无符(无符号右移)、号右移)、&=(按位与赋值)、(按位与赋值)、|=(按位非赋值)、(按位非赋值)、=(按位异或赋值)、(按位异或赋值)、=(符号扩展右(符号扩展右移赋值)、移赋值)、=(无符号右移赋值)。(无符号右移赋值)。注意注意:Java增加了无符号右移运算增加了无符号右移运算.参加位运算的变量低于参加位运算

25、的变量低于int类型时首先提升到类型时首先提升到int,然后再进行运算,然后再进行运算.1.1.位逻辑运算符位逻辑运算符v 按位与运算(按位与运算(&)参参与与运运算算的的两两个个值值,如如果果两两个个相相应应位位都都为为1 1,则则该该位位的的结果为结果为1 1,否则为,否则为0 0。即:即:0&0=0,0&1=0,1&0=0,1&1=1v 按位或运算(按位或运算(|)参参与与运运算算的的两两个个值值,如如果果两两个个相相应应位位都都是是0 0,则则该该位位结结果为果为0 0,否则为,否则为1 1。即:即:0|0=0,0|1=1,1|0=1,1|1=1v 按位异或运算(按位异或运算()参参与

26、与运运算算的的两两个个值值,如如果果两两个个相相应应位位的的某某一一个个是是1,另另一一个个是是0,那那么么按按位位异异或或()在在该该位位的的结结果果为为1。也也就就是是说如果两个相应位相同,输出位为说如果两个相应位相同,输出位为0,否则为,否则为1。即:即:00=0,01=1,10=1,11=0v 按位取反运算(按位取反运算()按按位位取取反反运运算算()属属于于一一元元运运算算符符,它它只只对对一一个个自自变变量量进进行行操操作作(其其他他所所有有运运算算符符都都是是二二元元运运算算符符)。按按位位取取反反生生成成与与输输入入位位的的相相反反的的值值若若输输入入0,则则输输出出1;输输入

27、入1,则输出,则输出0。即:即:0=1,1=02.左移、右移运算符左移、右移运算符v 左移位运算符(左移位运算符()左移,即将某个数的各个二进制位均向左移动指定的左移,即将某个数的各个二进制位均向左移动指定的位数。位数。其形式为:其形式为:datan;在不产生溢出的情况下,数据左移在不产生溢出的情况下,数据左移1位相当于乘以位相当于乘以2。例如:例如:int a=12,b;b=a、)右移运算,即是将某个数的各个二进制位均向右移动指定右移运算,即是将某个数的各个二进制位均向右移动指定的位数。右移有两种形式:符号扩展右移与无符号右移。的位数。右移有两种形式:符号扩展右移与无符号右移。当当进行符号扩

28、展右移时,负数的高位补进行符号扩展右移时,负数的高位补1,正数的高位补,正数的高位补0。表现形式是:表现形式是:datan及及datan例如,例如,71,得到的结果是,得到的结果是:00000000 00000000 00000000 00001110v对于对于byte或或short类型数据,类型数据,an的运算结果是的运算结果是int类型。类型。例如,例如,byte a=-8,在进行,在进行b1之前升级为之前升级为int类型,将高位用类型,将高位用1填充。填充。11111111 11111111 11111111 1000,然后再移位。,然后再移位。v问题问题,如果如果 b=2运算呢运算呢?

29、v 符号扩展右移:移位运算操作中,原高位上的数值被右移至符号扩展右移:移位运算操作中,原高位上的数值被右移至其它位时,用原来高位的数值填补丢失的高位。其它位时,用原来高位的数值填补丢失的高位。v无符号右移,即不管无符号右移,即不管data的数值是正是负,只要右移就用的数值是正是负,只要右移就用0来填补丢失的高位。来填补丢失的高位。v小结:小结:对于对于byte或或short类型数据,移位运算的结果是类型数据,移位运算的结果是int类型。类型。例如,如果例如,如果an,计算之前先将,计算之前先将a升级为升级为int类型类型(对于正数将对于正数将高位补高位补0,负数用,负数用1填充填充)在进行在进

30、行an运算时,运算时,如果如果a是是byte,short或或int类型数据,系统总是类型数据,系统总是先计算出先计算出n%32的结果的结果x,然后进行,然后进行ax。例如,。例如,a35的计算结果的计算结果与与a3相同。相同。对于对于long类型数据,则类型数据,则先计算先计算n%64的结果的结果x,然后进行,然后进行an运算时,负数不断右移的最后结果一定是运算时,负数不断右移的最后结果一定是-1,对,对于于byte或或short类型数据,类型数据,an的运算结果是的运算结果是int类型。类型。an的运算对于的运算对于a为为byte,short或或int类型时与类型时与an的运的运算有相同之处

31、。算有相同之处。3.3.位赋值运算符位赋值运算符v 位位赋赋值值是是指指,由由运运算算符符与与赋赋值值运运算算符符(=)组组成成 的的新新的的运运算符。算符。v 常常见见的的有有:&=(按按位位与与赋赋值值)、|=(按按位位非非赋赋值值)、=(按按位位异异或或赋赋值值)、=(符符号号扩扩展右移赋值)、展右移赋值)、=(无符号右移赋值)。(无符号右移赋值)。4.4.逻辑运算符逻辑运算符 v 逻逻辑辑运运算算符符就就是是能能够够在在逻逻辑辑运运算算之之中中使使用用的的运运算算符符,用用于于逻辑运算的数据类型必须是布尔型,结果也是布尔型。逻辑运算的数据类型必须是布尔型,结果也是布尔型。v 常常见见的

32、的逻逻辑辑运运算算符符有有:&(逻逻辑辑与与)、|(逻逻辑辑或或)、(逻逻辑辑异异或或)、&(短短路路与与)、|(短短路路或或)、!(逻逻辑辑反反)、&=(逻逻辑辑与与赋赋值值)、|=(逻逻辑辑或或赋赋值值)、=(逻逻辑辑异异或或赋值)、赋值)、=(相等)、(相等)、!=(不等)。(不等)。v辨析辨析:逻辑运算符逻辑运算符&和和&之间的不同。之间的不同。注意,注意,Java增加了逻辑运算符全与增加了逻辑运算符全与&,全非全非|,要求每个表达,要求每个表达式都要计算式都要计算!例如例如,int x=1;计算计算(y=1)=0)&(x=6)=6),(y=1)=0)&(x=6)=6)v举例说明基本应

33、用举例说明基本应用【例【例2.3】数据类型及基本运算数据类型及基本运算5.其它运算符及优先级与结合规律其它运算符及优先级与结合规律(1)其他运算符其他运算符v 赋值运算符赋值运算符 赋值运算符,将赋值运算符后面的值赋给其前的变量。赋值运算符,将赋值运算符后面的值赋给其前的变量。其格式为:其格式为:variable=常量或者表达式;常量或者表达式;这里允许一连串的赋值,即赋值运算符的后面仍然是一个这里允许一连串的赋值,即赋值运算符的后面仍然是一个赋值语表达式。赋值语表达式。v条件运算符条件运算符 是唯一一个三元运算符。其格式是:是唯一一个三元运算符。其格式是:判断条件?操作组判断条件?操作组1:

34、操作组:操作组2;执行过程是:检验判断条件是否为执行过程是:检验判断条件是否为“true”,若是,则执行,若是,则执行操作组操作组1的代码,否则执行操作组的代码,否则执行操作组2的代码。的代码。如:如:ab?max=a:max=b;v,new等运算符等运算符 如,内存分配运算符(如,内存分配运算符(new)、实例运算符()、实例运算符(instanceof)、)、强制类型转换运算符等。强制类型转换运算符等。例如表例如表2.11所示。所示。运算符运算符 用于声明、创建数组。还可用于访问数用于声明、创建数组。还可用于访问数组中的某个元素。例如:组中的某个元素。例如:int year=new int

35、10;其中,第一个其中,第一个 运算符声明运算符声明year是一个数组,而第是一个数组,而第二个二个 运算符创建一个可以存储运算符创建一个可以存储10个个int类型数据类型数据的数组。的数组。year0=1990;本语句中的本语句中的 操作符用于访问数组操作符用于访问数组中特定位置的数组元素。中特定位置的数组元素。.运算符运算符 用于访问类的类变量或对象的实例变量用于访问类的类变量或对象的实例变量或方法。或方法。(参数参数)运算符运算符 运算符运算符(参数参数)用于声明或调用一个方用于声明或调用一个方法。法。(数据类型数据类型)运算符运算符 运算符运算符(数据类型数据类型)称之为造型称之为造型

36、(cast),将一个数据类型转换为另一个数据类型。,将一个数据类型转换为另一个数据类型。例如,例如,double dm=500.86;int im=(int)dm;这样,通过将这样,通过将double类型类型dm强制转换成强制转换成int类型的类型的 im,im的值是的值是500。new运算符运算符 用于创建对象。例如,用于创建对象。例如,String Str1=new String(“This is a string”);instanceof运算符运算符 instanceof运算符的语法:运算符的语法:anobj instanceof aclass 用于判断对象用于判断对象anobj是否为类

37、是否为类aclass的一个实例,返回布尔的一个实例,返回布尔类型的值。类型的值。if(anobj instanceof aclass)else 举例说明如下:举例说明如下:例如,例如,basicTypeDemo.java Object things=new Object3;things0=new Double(3.1415926);things1=new Integer(20);things2=new Integer(15);double a=0;for(int i=0;ithings.length;i+)if(thingsi instanceof Integer)a+=(Integer)th

38、ingsi).intValue();else if(thingsi instanceof Double)a+=(Double)thingsi).doubleValue();System.out.println(“total=“+a);注意,如果注意,如果变量变量与与类型类型相同,或是类型的相同,或是类型的子类型子类型,结果就是,结果就是true。v数值类型转换数值类型转换 自动数值类型转换自动数值类型转换 int x=1;double y=3.1415926;System.out.println(x+y);注意:在运算过程中,注意:在运算过程中,x首先被自动转换成首先被自动转换成double类

39、型再进行类型再进行加法,结果是加法,结果是double类型。但如果将和赋给一个整型变量,编类型。但如果将和赋给一个整型变量,编译器就会报错:译器就会报错:int c=x+y;强制类型转换,也称之为造型强制类型转换,也称之为造型(cast)如前例子所示。如果宽类型被强制转换为窄类型,有可能丢如前例子所示。如果宽类型被强制转换为窄类型,有可能丢失信息。失信息。数值类型之间的合法转换如图数值类型之间的合法转换如图2.1所示。所示。v实线表示的转换不会丢失信息,而虚线所示的转换实线表示的转换不会丢失信息,而虚线所示的转换可能可能丢失精度丢失精度!bytebyteshortshortintintlong

40、longfloatfloatdoubledoublecharcharv当表达式中存在类型不相同的操作数时就要进行类型转换当表达式中存在类型不相同的操作数时就要进行类型转换v类型转换分为隐式类型转换和显式类型转换类型转换分为隐式类型转换和显式类型转换(2)运算符的优先级与结合规律运算符的优先级与结合规律 v运算符的优先级,是指在运算过程中,各个运算符的运算执运算符的优先级,是指在运算过程中,各个运算符的运算执行顺序。行顺序。v运算符的结合规律,是指一种运算符按照哪个结合方向对其运算符的结合规律,是指一种运算符按照哪个结合方向对其进行运算。进行运算。v具体情况请见表具体情况请见表2-12 例如,类

41、似这样的语句,不建议使用:例如,类似这样的语句,不建议使用:c=x+y/100+z;建议使用圆括号明确指出运算的执行次序,如:建议使用圆括号明确指出运算的执行次序,如:c=(x+)+y/(100)+z;2.4 控制语句控制语句2.4.1 选择结构控制语句选择结构控制语句v选选择择结结构构是是三三大大基基本本结结构构之之一一,是是通通过过选选择择控控制制语语句句来来实实现的。现的。v其其功功能能是是:根根据据所所给给条条件件,来来判判断断下下一一步步进进行行两两组组或或者者若若干组操作之中的一组。干组操作之中的一组。v选择控制语句的两种实现:选择控制语句的两种实现:if语句与语句与switch语

42、句。语句。1.if语句语句if语句常用形式是:语句常用形式是:if(判断条件)操作组(判断条件)操作组1;else 操作组操作组2;说明:说明:v 操作组操作组1和操作组和操作组2是两个不同的操作,是两个不同的操作,else及其后面的操作及其后面的操作是可选项。是可选项。v 运行过程:判断条件是否满足,若满足则执行操作组运行过程:判断条件是否满足,若满足则执行操作组1;否;否则进行操作组则进行操作组2。如:如:if(ab)max=b;else max=a;1/12/2023if语句的另一种形式:语句的另一种形式:vif(判断条件(判断条件1)操作组)操作组1;else if(判断条件(判断条件

43、2)操作组)操作组2;else if(判断条件(判断条件n)操作组)操作组n;else操作组操作组n+1;v运行过程:若判断条件运行过程:若判断条件1满足,则执行操作组满足,则执行操作组1;反之若不;反之若不满足,且判断条件满足,且判断条件2满足则执行操作组满足则执行操作组2;以此类推,如果;以此类推,如果判断条件都不满足,则进行操作组判断条件都不满足,则进行操作组n+1。v另另外外,if语语句句允允许许嵌嵌套套形形式式,即即在在if或或者者else后后面面的的操操作作组组中,嵌入新的中,嵌入新的if语句。语句。v需需要要注注意意:else遵遵守守“临临近近原原则则”,即即总总是是与与距距离离

44、它它最最近近的的if相对应。相对应。2.switch2.switch语句语句vswitch语语句句,是是一一种种特特别别的的选选择择结结构构控控制制语语句句,处处理理多多分分支支的的情情况况。而而if在在处处理理此此类类情情况况时时,比比较较复复杂杂且且else与与if的的对对应关系易混淆。应关系易混淆。v一一般般在在处处理理两两个个分分支支时时,使使用用if语语句句,在在三三个个或或者者更更多多分分支支时,使用时,使用switch语句。语句。vswitch语句的一般形式是:语句的一般形式是:switch(表达式或者某一个变量)(表达式或者某一个变量)case 常量常量1:操作组:操作组1;b

45、reak;case 常量常量2:操作组:操作组2;break;case 常量常量n:操作组:操作组n;break;default:操作组:操作组n+1;v运运行行过过程程:若若switch后后括括号号内内的的表表达达式式或或者者变变量量的的值值是是常常量量1,则则执执行行操操作作组组1的的代代码码,然然后后跳跳出出switch语语句句;若若表表达达式式或或者者变变量量的的值值是是常常量量2,则则执执行行操操作作组组2的的代代码码,然然后后跳跳出出switch语语句句;以以此此类类推推,若若表表达达式式或或者者变变量量的的值值不不能能和和任任何何一一个个case后后面面的的常常量量相相等等,则则

46、执执行行default后后面面的的操作操作。vswitch语语句句只只能能测测试试相相等等时时的的情情形形,不不能能像像if语语句句那那样样判判断断任意的情形。任意的情形。v另外注意,另外注意,case后的常量必须不等。后的常量必须不等。3.break语句语句vbreak 语句,用于终止一个语句序列或者一个循环。语句,用于终止一个语句序列或者一个循环。一般格式是:一般格式是:break;v在在switch语句中,它只能终止语句中,它只能终止“case”后的语句序列,不能后的语句序列,不能影响其它循环,或者其它代码。影响其它循环,或者其它代码。v在循环嵌套中,在循环嵌套中,break 语句只跳出

47、语句只跳出break 语句所在的循环。语句所在的循环。v带标号的带标号的break语句语句.其格式是:其格式是:break label;label是标识某一代码块的标签,可以是由任意合法的标识是标识某一代码块的标签,可以是由任意合法的标识符及冒号组合而成。符及冒号组合而成。v这个标号应该标志某一个语句块。执行这个标号应该标志某一个语句块。执行break语句就语句就从这个从这个语句块中跳出来,流程进入该语句块后面的语句语句块中跳出来,流程进入该语句块后面的语句。但带有。但带有label标号的代码块必须含有标号的代码块必须含有break label语句,可以直接包语句,可以直接包含,也可以间接包含

48、,这样就可以使用这种含,也可以间接包含,这样就可以使用这种break语句退出语句退出几个嵌套的代码块。几个嵌套的代码块。例如例如,4.4.continue语句语句 v 作用:跳过循环体中其后面的代码,接着进行下一次的判作用:跳过循环体中其后面的代码,接着进行下一次的判断条件检验。其使用形式是:断条件检验。其使用形式是:continue;v 与与break语句的差异:语句的差异:break语句结束整个循环,直接执行语句结束整个循环,直接执行该循环后续的语句;而该循环后续的语句;而continue语句是结束此次的循环体语句是结束此次的循环体的运行,转而判断下次是否可以执行循环体。的运行,转而判断下

49、次是否可以执行循环体。v带标号的带标号的continue语句语句 continue label;执行此语句立即跳转到指定的标号执行此语句立即跳转到指定的标号(label)处,接着执行下处,接着执行下一次循环一次循环.例如例如,5.return5.return语句语句vreturn语句也可以实现跳转的功能。语句也可以实现跳转的功能。v一般多用于方法的调用或者子程序调用。其常用形式是:一般多用于方法的调用或者子程序调用。其常用形式是:return;/函数调用返回函数调用返回 或者或者 return 表达式表达式;/函数调用带值返回函数调用带值返回2.4.2 循环结构控制语句循环结构控制语句(1)w

50、hile语句语句vwhile语句的常用形式是:语句的常用形式是:while(判断条件表达式)循环体;(判断条件表达式)循环体;v当判断条件表达式的值是布尔型的当判断条件表达式的值是布尔型的“true”时,执行其后的时,执行其后的循环体;反之,不执行,执行循环体;反之,不执行,执行while语句接下来的代码。语句接下来的代码。注意注意:这里这里判断条件表达式结果必须是布尔型值判断条件表达式结果必须是布尔型值。例如例如,int i=0;boolean bf=false;while(i=0)/while(i)while(bf=true)/while(bf)(2)do-while语句语句vdo-whi

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com