1、1第二章第二章 Java语言基础语言基础语言成分语言成分流程控制语句流程控制语句 数组数组字符串字符串2语言成分语言成分标识符与关键字标识符与关键字变量与常量变量与常量基本数据类型基本数据类型运算符与表达式运算符与表达式3分隔符 Java是是一一种种自自由由格格式式的的语语言言,可可以以用用任任意意个个空格、制表符、换行符空格、制表符、换行符隔开每个词。如:隔开每个词。如:System.out.println(Counted +count+chars.);分分号号作作为为语语句句的的结结束束符符,每每个个语语句句必必须须以以分分号作为结束符。号作为结束符。4注释三种注释格式:三种注释格式:/单
2、行注释单行注释/*多行多行 注释注释*/*JDK的的javadoc工具用这种注释信息能自动工具用这种注释信息能自动从程序中抽出类的公共接口形成文档。从程序中抽出类的公共接口形成文档。*/5标识符定义定义:标识符用来作为类、方法和变量的名字:标识符用来作为类、方法和变量的名字语法规则语法规则:以字母、下划线:以字母、下划线(_)(_)、美元符号、美元符号($)($)开始,后跟这三种符号或数字。开始,后跟这三种符号或数字。例如:例如:identifier _sys_ var1$change userName user_ name必须要区分大小写必须要区分大小写 没有长度限制没有长度限制6标识符续约
3、定:约定:类名类名,接口名接口名:首字母应该大写。:首字母应该大写。class ThisIsAClassNameinterface Account字段、方法以及对象字段、方法以及对象:首字母应小写。首字母应小写。thisIsMethodOrFieldName()()对于所有标识符,其中包含的所有单词都应紧靠对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。在一起,而且大写中间单词的首字母。常量常量:全部用大写字母表示。:全部用大写字母表示。如:如:GREEN HEAD_ COUNTJava包包(package)属于一种特殊情况:它们全)属于一种特殊情况:它们全都是小写
4、字母,即便中间的单词亦是如此。都是小写字母,即便中间的单词亦是如此。如如:package java.awt.event7关键字abstractbooleanbreakbytecasecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatforgoto*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthis
5、throwthrowstransienttryvoidvolatilewhile关键字关键字是由系统定义的一些词,它们在程序里代表特定的含义。是由系统定义的一些词,它们在程序里代表特定的含义。定义标识符时要避免使用这些词。定义标识符时要避免使用这些词。8Java的变量有两种:的变量有两种:局部变量局部变量、类成员变量类成员变量。变变量量是是指指其其值值可可以以变变化化的的量量,用用于于暂暂存存中中间间结结果果。变变量量必必须先说明后使用。变量的说明形式如下:须先说明后使用。变量的说明形式如下:修饰符修饰符 类型类型 变量变量 =表达式表达式,变量变量=表达式表达式;变变量量名名是是一一个个合合
6、法法的的标标识识符符,以以小小写写字字母母开开头头,若若一一个个变变量量名名由由超超过过一一个个单单词词所所组组成成,则则第第一一个个单单词词之之后后的的所所有有单单词都以大写字母开头,以便于理解该变量名。例如:词都以大写字母开头,以便于理解该变量名。例如:anIntVar变量类型可以是基本数据类型和引用类型。变量类型可以是基本数据类型和引用类型。局局部部变变量量在在使使用用前前必必须须给给定定初初值值,否否则则,Java将将不不编编译译,而类成员变量无此要求。而类成员变量无此要求。变量变量9变量的作用域变量的作用域 变量的作用域指明可访问该变量的一段代变量的作用域指明可访问该变量的一段代码。
7、按作用域来分,变量可以有下面几种:码。按作用域来分,变量可以有下面几种:局部变量局部变量 Local variable 类成员变量类成员变量 Member variable 方法参数方法参数 Method parameter 异常处理参数异常处理参数 Exception-handler parameter 10例例1.1.变量的作用域变量的作用域 11常量:指在程序运行过程中其值不变的量。常量:指在程序运行过程中其值不变的量。直直接接常常量量:在在程程序序中中直直接接引引用用的的常常量量,包包括括数数值值型型常常量量和和非非数数值值型型常常量量。数数值值常常量量包包括括整整数数和和浮浮点点数数
8、,非数值常量包括字符常量、字符串常量和布尔常量。非数值常量包括字符常量、字符串常量和布尔常量。符号常符号常量,用量,用final定义,表示形式:定义,表示形式:final 变量类型变量类型 变量名变量名=值;值;例:例:final float PI=3.14159f;final byte bMAX=128;常量常量12数据类型基本基本/简单数据类型(简单数据类型(primitive type:)引用引用/参考数据类型(参考数据类型(reference type)13字符型:字符型:char 整型:整型:byte,short,int,long浮点型:浮点型:double,float布尔型:布尔型
9、:boolean (取值取值 true 或或 false)基本数据类型(基本数据类型(primitive type:)14数据类型名数据类型名 占用内存空间占用内存空间 数值范围数值范围 缺省值缺省值 说说 明明byte 1字节字节(-128)127 0 整整 型型 short 2字节字节(-32768)32767 0 int 4字节字节(-2147483648)2147483647 0 long 8字节字节(-9223372036854775808)9223372036854775807 0 float 4字节字节(3.4028347E+38)(1.40239846E-45)0.0F 浮浮点
10、点型型 double 8字节字节(1.79769313486231570E+308)(4.94065645841246544E-324)0.0D char2字节字节u0000 uFFFFu0000字符型字符型boolean 1位位 true 或或 false False 布尔型布尔型 基本数据类型表基本数据类型表注:缺省值就是默认的初值注:缺省值就是默认的初值,只对成员变量有用,局部变量在使用前必须人为地给定初值只对成员变量有用,局部变量在使用前必须人为地给定初值15布尔型数据布尔型数据布尔类型布尔类型-boolean布尔型数据只有两个值布尔型数据只有两个值true和和false,且它们不对应
11、,且它们不对应于任何整数值。布尔型变量的定义如:于任何整数值。布尔型变量的定义如:boolean b=true;16整型数据1.整型常量:整型常量:三种表示形式:三种表示形式:十进制整数,如十进制整数,如123,-456,0 八八进进制制整整数数,以以0开开头头,如如0123表表示示十十进进制制数数83,-011表表示示十进制数十进制数-9 十六进制整数,以十六进制整数,以0 x或或0X开头,如开头,如0 x123表示十进制数表示十进制数291整型常量默认为整型常量默认为 int 类型类型,在机器中占在机器中占32位位1.对对于于long型型值值,则则要要在在数数字字后后加加L或或l,如如12
12、3L表表示示一一个长整数,在机器中占个长整数,在机器中占64位位172.整型变量整型变量整型变量的类型有整型变量的类型有byte,short,int,long四种四种整型长度整型长度数据类型数据类型取值范围取值范围8 bits byte-2 7 to 2 7-116 bits short-2 15 to 2 15-132 bitsint-2 31 to 2 31-164 bits long-2 63 to 2 63-1整型数据183.3.整型变量的定义整型变量的定义例如:例如:byte b;/指定变量指定变量b为为byte型型short s;/指定变量指定变量s为为short型型int i;/
13、指定变量指定变量i为为int型型long l;/指定变量指定变量l为为long型型4.4.例例DataType1.javaDataType1.java整型数据19字符型数据1.字符型常量:字符型常量:字符常量是用单引号括起来的一个字符,字符常量是用单引号括起来的一个字符,如如a,AUnicode代码,用代码,用16位表示一个字符位表示一个字符转义字符,以反斜杠转义字符,以反斜杠()开头,将其后开头,将其后的字符转变为另外的含义的字符转变为另外的含义20转义字符转义字符 名称名称 Unicode值值 b 退格退格 u0008 t Tab(制表制表)u0009 n 换行换行 u000a r 硬回车
14、硬回车 u000d”双引号双引号 u0022 单引号单引号 u0027 反斜杠反斜杠 u005c 字符型数据21字符型数据2.字符型变量(字符型变量(char):在机器中占在机器中占16位,其范围为位,其范围为065535字符型变量的定义如:字符型变量的定义如:char c=a;可以把它当作整数数据来操作。例如:可以把它当作整数数据来操作。例如:int three=3;char one=1;char four=(char)(three+one);/four=422字符型数据3.字符串型常量:字符串型常量:字符串常量是作为字符串常量是作为String类的一个对象来处理的,而不是一个基类的一个对象
15、来处理的,而不是一个基本数据本数据.字符串常量是用双引号字符串常量是用双引号(“”)括起来的一串字符,如括起来的一串字符,如“This is a string.n”。字符串连接使用字符串连接使用+操作符操作符 例如:例如:int count=7Counted +count+chars.例如:例如:int x=0,y=1,z=2;String sString=x,y,z;System.out.println(sString+x+y+z);System.out.println(x+sString);23浮点型数据1.1.实型常量实型常量Java的实常数有两种表示形式:的实常数有两种表示形式:十十进
16、进制制数数形形式式:由由数数字字和和小小数数点点组组成成,且且必必须须有小数点,如有小数点,如0.123,.123,123.,123.0科科学学计计数数法法形形式式:如如:123e3或或123E3,其其中中e或或E之之前前必必须须有有数数字字,且且e或或E后后面面的的指指数数必必须须为为整数。整数。实常数实常数默认类型为默认类型为double型型,在机器中占在机器中占64位。位。对对于于float型型的的值值,则则要要在在数数字字后后加加f或或F,如如12.3F,它在机器中占,它在机器中占32位,且表示精度较低。位,且表示精度较低。24浮点型数据2.2.实型变量实型变量实型变量的类型有实型变量
17、的类型有float和和double两种:两种:数据类型数据类型所占位数所占位数float32double643.3.实型变量定义实型变量定义例如:例如:float f;/指定变量指定变量f为为float型型double d;/指定变量指定变量d为为double型型4.4.例例DataType2.javaDataType2.java25引用数据类型(reference type)数数组组Array,类类 class,接接口口interface属属于于reference 类类型型。reference 类类型型的的变变量量是是所所引引用用的对象的内存地址。的对象的内存地址。例子:例子:26变量的默认
18、初始化值变量的默认初始化值27 Java中整型、实型、字符型数据可以混合运算。中整型、实型、字符型数据可以混合运算。运算过程中,不同类型的数据会自动转换为同一类型。运算过程中,不同类型的数据会自动转换为同一类型。自动类型转换原则自动类型转换原则:从低数据类型向高数据类型转换从低数据类型向高数据类型转换 即:即:byte short,char,int,long,float,double short char,int,long,float,double char int,long,float,double long float,double float double 注意:布尔型与其它基本类型之间
19、不能转换注意:布尔型与其它基本类型之间不能转换强制类型转换强制类型转换类型转换类型转换28形式为:形式为:(类型名类型名)表达式表达式例如:例如:int a;long b;a=(int)b;long l=156;byte b;b=(byte)l;注注意意:1.使使用用强强制制类类型型转转换换可可能能会会导导致致数数值值溢溢出出或或精精 度的下降,应尽量避免。度的下降,应尽量避免。2.布尔型与其它基本类型之间不能转换布尔型与其它基本类型之间不能转换例:例:DataCon.java强制类型转换强制类型转换29基本数据类型的封装封装类封装类基本数据类型类基本数据类型类Boolean booleanC
20、haractercharDoubledoubleFloatfloatIntegerintLonglongShortshortBytebyte30运算符和表达式运算符指明对操作数所进行的运算。运算符指明对操作数所进行的运算。按功能分类:按功能分类:算术运算符算术运算符(+,-,*,/,%,+,-)关系运算符关系运算符(,=,&,|,)赋值运算符赋值运算符(=,及其扩展赋值运算符如,及其扩展赋值运算符如+=)条件运算符条件运算符(?:)其其它它(包包括括点点运运算算符符,逗逗号号运运算算符符,,下下标标运运算算符符,对对象象运运算算符符 instanceof,内内存存分分配配运运算算符符new,强
21、强制制类型转换运算符类型转换运算符(类型类型),方法调用运算符,方法调用运算符()等等)31算术运算符说明:说明:Java对加运算符进行了扩展,使它能够进行字符对加运算符进行了扩展,使它能够进行字符串的连接,如串的连接,如“abc”+“de”,得到串,得到串“abcde”+i,-i在使用在使用i前,先使前,先使i的值加或减的值加或减1i+,i-在使用在使用i后,先使后,先使i的值加或减的值加或减1%运算可用于浮点数运算运算可用于浮点数运算例:例:Tomorrow.java32关系运算符说明说明:Java中中,任任何何类类型型的的数数据据(包包括括基基本本类类型型和和组组合类型)都可以通过合类型
22、)都可以通过=或或!=来比较是否相等。来比较是否相等。关关系系运运算算的的结结果果返返回回true或或false,而而不不是是C、C+中的中的1或或0。等等于于和和不不等等于于适适用用于于所所有有内内建建的的数数据据类类型型,但但其其 他他 比比 较较 不不 适适 用用 于于 boolean类类 型型。33关系运算符说明:说明:检查对象是否相等检查对象是否相等public class Equivalence public static void main(String args)Integer n1=new Integer(47);Integer n2=new Integer(47);Syst
23、em.out.println(n1=n2);System.out.println(n1!=n2);结果:结果:false true34关系运算符说明:说明:若若想想对对比比两两个个对对象象的的实实际际内内容容是是否否相相同同,使使用用方方法法equals()。例如:例如:public class EqualsMethod public static void main(String args)Integer n1=new Integer(47);Integer n2=new Integer(47);System.out.println(n1.equals(n2);35关系运算符说明说明:假设您
24、创建了自己的类,结果如何?例如:假设您创建了自己的类,结果如何?例如:class Value int i;public class EqualsMethod2 public static void main(String args)Value v1=new Value();Value v2=new Value();v1.i=v2.i=100;System.out.println(v1.equals(v2);结果:结果:false36布尔逻辑运算符逻辑运算符逻辑运算符AND(&,&)、)、OR(|,|)、)、XOR()以及以及NOT(!)能生成一个布尔值()能生成一个布尔值(true或或fals
25、e)说明:说明:只可将只可将AND,OR或或NOT应用于布尔值。不可将一个非应用于布尔值。不可将一个非布尔值当作布尔值在逻辑表达式中使用布尔值当作布尔值在逻辑表达式中使用 例如:以下是非法的。例如:以下是非法的。int i=1,j=2;i&ji|j!i以下是合法的以下是合法的:(i 10)&(j 10)(i 10)&(j 10)(i 10)|(j 10)(i 10)|(j op1 op2op1右移右移op2位位op1 op1 op2op1无符号右移无符号右移op2位位位运算符位运算符39位运算符(,)说明说明::将一个数的各二进制位全部右移若干位将一个数的各二进制位全部右移若干位,移移到右端的
26、低位被舍弃,最高位则移入原来高位的到右端的低位被舍弃,最高位则移入原来高位的值值 例如例如:a=00110111,则,则a2=00001101b=11010011,则,则 b2=11110100:一个数的各二进制位一个数的各二进制位无符号无符号右移若干位,右移若干位,与运算符与运算符相同,移出的低位被舍弃,但不同相同,移出的低位被舍弃,但不同的是的是最高位补最高位补0。如如 a=00110111,则则 a2=00001101 b=11010011,则则 b2=0011010040条件运算符条件运算符条件运算符?:为三元运算符,它的一般形式为:为三元运算符,它的一般形式为:expression?
27、statement1:statement2例如:例如:ratio=denom=0?0:num/denom;41赋值运算符说明说明:在赋值运算符两侧的类型不一致的情况下:在赋值运算符两侧的类型不一致的情况下:Java允允许许将将任任何何基基本本类类型型转转换换为为为为其其他他任任何何一一种种基基本本类型。但布尔值(类型。但布尔值(bollean)要除外。)要除外。如如果果左左侧侧变变量量的的数数据据类类型型的的级级别别高高,则则右右侧侧的的数数据据被被自自动动转转化化为为与与左左侧侧相相同同的的高高级级的的数数据据类类型型,然然后后赋赋给给左侧变量左侧变量否则,需要使用否则,需要使用强制类型转换
28、强制类型转换运算符运算符 类对象不能随便进行强制类型转换类对象不能随便进行强制类型转换42说明说明:续续例如:例如:long bigValue=99L;int squashed=bigValue;/Wrongint squashed=(int)bigValue;/OKint squashed=99;/default integer literaldouble z=12.414F;/12.414F is float,OKfloat z1=12.414;/12.414 is double,illegal43扩展赋值运算符运算符运算符例子例子解释解释+=x+=ax=x+a-=x-=ax=x-a*=x
29、*=ax=x*a/=x/=ax=x/a%=x%=ax=x%a&=x&=ax=x&a|=x|=ax=x|a=x=ax=xa=x=ax=x=x=ax=xa=x=ax=xa44优先级优先级 运运 算算 符符 类类 型型 1()()2+、-、+、-、!、!、单目运算符单目运算符 3*、/、%算术运算符算术运算符 4+、-算术运算符算术运算符 5 、移位运算符移位运算符 6、=关系运算符关系运算符 7=、!=关系运算符关系运算符 8&逻辑运算符逻辑运算符 9 逻辑运算符逻辑运算符 10?:?:条件运算符条件运算符 11=、+=、-=、*=、/=、%=、=赋值运算符赋值运算符 12&=、|=、=、=运算符
30、的优先级运算符的优先级45 输输入入和和输输出出是是Java程程序序的的重重要要组组成成部部分分,它它提提供供了了人人机机交互的手段,它们属于方法调用语句。交互的手段,它们属于方法调用语句。输入输出输入输出 输入是指把需要加工的数据放到程序中输入是指把需要加工的数据放到程序中 输出则把程序处理的结果呈现给用户输出则把程序处理的结果呈现给用户标准输入输出标准输入输出 一般用键盘作为标准的输入设备一般用键盘作为标准的输入设备 显示器则是标准的输出设备显示器则是标准的输出设备通通过过System.in和和System.out对对象象分分别别与与键键盘盘和和显显示示器器发发生生联联系进行输入和输出。系
31、进行输入和输出。标准输入输出(I/O)46 System.out对象中包含的最常用的方法:对象中包含的最常用的方法:println(参数参数)方法方法 向标准输出设备向标准输出设备(显示器显示器)打印一行文本并换行打印一行文本并换行print(参数参数)方法方法 向标准输出设备向标准输出设备(显示器显示器)打印一行文本但不换行打印一行文本但不换行参数类型:参数类型:boolean,char,char,double,float,int,long,Object,String 例例标准输出标准输出System.out对象对象47 System.in中最常用的方法中最常用的方法。int read()返
32、回流的下一个字节返回流的下一个字节int read(byte b)返回读取的返回读取的字字节的数量,在流的末尾返回节的数量,在流的末尾返回-1int read(byte b,int off,int len)标准输入标准输入System.in对象对象48流程控制语句流程控制语句 流程控制结构流程控制结构 顺序结构语句顺序结构语句选择语句选择语句循环语句循环语句转移语句转移语句49流程控制结构 顺序结构、分支结构、循环结构顺序结构、分支结构、循环结构50不执行与死循环 51Java语句分类52顺序结构语句赋值语句赋值语句如:如:i=10;空语句空语句复合语句复合语句 变量声明或常量声明变量声明或常
33、量声明;语句序列语句序列;53 if-else语句的语法形式:语句的语法形式:if (布尔表达式布尔表达式)语句块语句块1 else 语句块语句块2 若无若无else部分,部分,if语句的流程如语句的流程如图图1所示:所示:若有若有else部分部分,if语句的流程如语句的流程如图图2所示。所示。若语句若语句若语句若语句1 1,语句,语句,语句,语句2 2也是也是也是也是if-elseif-else语句便形成语句便形成语句便形成语句便形成嵌套嵌套嵌套嵌套if else 语句语句54布尔表达式为真布尔表达式为真?语句块语句块1语句语句否否是是图图1 无无else部分的部分的if语句的流程语句的流程
34、55布尔表达式布尔表达式语句语句否是是图图2 有有else部分的部分的if语句的流程语句的流程语句块语句块1语句块语句块256例例题:求三个数中的最大值与最小值。例题:求三个数中的最大值与最小值。public class Max3if public static void main(String args)int a=1,b=2,c=3,max,min;if(ab)max=a;else max=b;if(cmax)max=c;System.out.println(max=+max);min=ab?a:b;min=cmin?c:min;System.out.println(min=+min);5
35、7 if-else语句中内嵌的语句语句中内嵌的语句1或语句或语句2又是又是if-else语句的情语句的情况称为况称为if-else语句的嵌套。如:语句的嵌套。如:if(布尔表达式(布尔表达式1)语句块语句块1 else if(布尔表达式(布尔表达式2)语句块语句块2 else if(布尔表达式布尔表达式m)语句块语句块m else 语句块语句块nif else 语句的嵌套语句的嵌套58 switch语句根据表达式的结果来执行多个可能操作中的语句根据表达式的结果来执行多个可能操作中的一个,语法形式如下:一个,语法形式如下:switch(表达式表达式)case 常量常量1:语句:语句1 break
36、;case 常量常量2:语句:语句2 break;case 常量常量n:语句:语句n break;default:缺省处理语句缺省处理语句 break;/这儿的这儿的break语句不必要语句不必要 switch 语句语句59表达式语句1break语句2breakbreak语句nbreak缺省处理语句后继语句常量2defaultswitch语句的流程语句的流程常量1常量n60switchswitch 语句说明:说明:表表达达式式expression可可以以返返回回任任一一整整型型类类型型的的值值(如如整整型型、字符型字符型)case子子句句中中的的值值必必须须是是常常量量,而而且且所所有有cas
37、e子子句句中中的的值应是不同的值应是不同的case通通常常与与break语语句句联联用用,以以保保证证多多路路分分支支的的正正确确实现。实现。多个多个case可以公用一组执行语句可以公用一组执行语句。case 1:case 2:case 3:System.out.println(“hello”);case 1,2,3:System.out.println(“hello”);/error例例MySwitch.java61例例例例求一个日期(年月日)对应的是星期几求一个日期(年月日)对应的是星期几ChineseWeek.java。62 Java Java循环语句有循环语句有forfor 、whil
38、ewhile和和do-whiledo-while三种。三种。for for 语句语句while while 语句语句 do-while do-while 语句语句 多重循环多重循环循环语句循环语句63for语句的语法形式为:语句的语法形式为:for(表达式(表达式1;表达式;表达式2;表达式;表达式3)语句语句 for语句的执行过程如下:语句的执行过程如下:(1)按表达式)按表达式1将初值赋给循环控制变量。将初值赋给循环控制变量。(2)按表达式)按表达式2判断循环是否成立,即判断控制变量的值判断循环是否成立,即判断控制变量的值for 语句循环体,是循环体,是一个语句,一个语句,若是多个语若是多
39、个语句则应构成句则应构成复合语句复合语句循环条件循环条件64计算初始表达式计算初始表达式1表达式表达式2=true执行循环体语句执行循环体语句求解表达式求解表达式3执行循环体下边语句执行循环体下边语句否否是是for语句的流程语句的流程65逗逗号号语语句句分分隔隔的的语语句句系系列列,被被看看作作一一个个语语句句,这这样样就就可可以以在在只只能能放放一一个个语语句句的的地地方方放放任任意意多多个个语语句句,只只须须用用逗逗号号将将它它们们分分隔开。如:隔开。如:for(i=1,j=10;ij;i+,j-)表表达达式式1、表表达达式式2及及表表达达式式3都都可可以以为为空空语语句句(但但分分号号不
40、不能能省省略略)如:如:for(;)使使用用for语语句句还还需需注注意意:循循环环内内修修改改循循环环控控制制变变量量,往往往往会会带带来预想不到的结果,因此应慎用。来预想不到的结果,因此应慎用。66例 public class CommaOperator public static void main(String args)for(int i=1,j=i+10;i 5;i+,j=i*2)System.out.println(i=+i+j=+j);输出如下:输出如下:i=1 j=11i=2 j=4i=3 j=6i=4 j=8例:打印例:打印5到到10的阶乘。的阶乘。ForExam.java
41、67whilewhile语句形式如下:语句形式如下:while(while(布尔表达式布尔表达式)语句语句while 语句 whilewhile语句的语句的关键字关键字循环循环条件条件 循环体,是一个语循环体,是一个语句,若是多个语句则句,若是多个语句则应构成复合语句应构成复合语句68布尔表达式布尔表达式=true执行循环体执行循环体否否是是while语句流程图语句流程图69例例.用用while循环语句计算循环语句计算s=1+1/2+1/3+1/100。class Sum public static void main(String args)int i=1;float s=0;while(i
42、=100)s=s+(1.0f/i);i+;System.out.println(“s=”+s);例70 do-whiledo-while语句的语法形式如下:语句的语法形式如下:dodo 语句语句 whilewhile(布尔表达式)(布尔表达式);do-while 语句dodo语句语句的的关键字关键字循环体,是一个语循环体,是一个语句,若是多个语句句,若是多个语句则应构成复合语句则应构成复合语句循环条件循环条件71布尔表达式布尔表达式=true执行循环体执行循环体是是否否do-while语句流程语句流程例:计算例:计算Fibonacci序列。序列。Fibonacci.java72 一一个个循循环
43、环体体内内又又包包含含另另一一个个完完整整的的循循环环结结构构,称称为为循循环环的的嵌嵌套套。内内嵌嵌的的循循环环中中还还可可以以嵌嵌套套循循环环,这这就就是是多多重重循循环环。上上述述三三种种循循环环(whilewhile循循环环,do-whiledo-while循循环环和和forfor循循环环)语句之间可以相互嵌套使用。语句之间可以相互嵌套使用。例:例:输出九九乘法表输出九九乘法表Mul99.java。多重循环多重循环73Java不支持无条件跳转的不支持无条件跳转的goto语句。语句。Java的跳转语句有三种的跳转语句有三种 break语句语句 continue语句语句 return 语句
44、语句 转移语句74作用:使程序的流程从一个语句块的内部跳转出来。作用:使程序的流程从一个语句块的内部跳转出来。1)1)从从switchswitch语句的分支中跳出来语句的分支中跳出来 2 2)从循环体内跳出来)从循环体内跳出来 3 3)跳出一个语句块)跳出一个语句块 break 语句语句格式:格式:break 标号标号;1)无标号:跳出当前整个语句块)无标号:跳出当前整个语句块 2)有标号:跳出标号指出的语句块)有标号:跳出标号指出的语句块例:例:MyBreak.java75return语句 格式:格式:return 表达式表达式用途:用途:1)指定一个方法返回什么值)指定一个方法返回什么值
45、2)立即返回其后表达式的值)立即返回其后表达式的值76 continue语句只能在循环语句中使用语句只能在循环语句中使用 格式格式:continue 标号标号;(1)无标号:)无标号:用来结束所在循环语句块的本次循环用来结束所在循环语句块的本次循环(2)有标号:)有标号:跳过标号所指的循环语句所有余下部分语句,跳过标号所指的循环语句所有余下部分语句,直接转入标号标明的循环层次。直接转入标号标明的循环层次。例:求例:求100内的质数。内的质数。ContinueExam.javacontinue 语句语句77数组一维数组一维数组二维数组二维数组78 数 组相同数据类型的元素按一定的顺序排列就构成数
46、组相同数据类型的元素按一定的顺序排列就构成数组数组元素可以为:数组元素可以为:基本数据类型基本数据类型某一类的对象(引用类型)某一类的对象(引用类型)元素在数组中的相对位置由下标来指明,数组中的每个元元素在数组中的相对位置由下标来指明,数组中的每个元素通过数组名加下标进行引用。素通过数组名加下标进行引用。建立建立java数组需要以下三个步骤:数组需要以下三个步骤:声明数组变量声明数组变量创建数组对象创建数组对象初始化数组元素初始化数组元素 在在Java中数组是一个类,用中数组是一个类,用new建立实例才可用。建立实例才可用。数组分为一维数组和多维数组。数组分为一维数组和多维数组。79一维数组1
47、.声明一维数组变量声明一维数组变量数据类型数据类型 数组数组 或或 数据类型数据类型 数组数组int a;或或 int a;double arrray1;double array2;double arrray1,array2;2.使用使用new为数组分配空间为数组分配空间数组数组=new 数据类型数据类型长度长度a=new int5;int a =new int5;String b =new String 100,c=new String 80;803.数组长度数组长度length Java语语言言自自动动为为每每个个数数组组变变量量提提供供length属属性性返返回回数数组组存存储储单单元元
48、个个数数。使使用用点点运运算算符符获获长长度度的格式如下的格式如下:数组变量数组变量.length 建建议议使使用用length使使数数组组下下标标在在0a.length之之间间变变化化,这这样样既既能能避避免免产产生生下下标标越越界界的的运运行行错错误误,又又能能使使程程序序段段不不受受数数组组长长度度变变化化的的影影响响,从从而而使使程序更加稳定和易于维护。程序更加稳定和易于维护。814.数组元素的表示数组元素的表示 数数组组中中的的元元素素可可以以是是基基本本类类型型的的,也也可可以以是是引引用用类类型型的的。要要指指向向数数组组中中的的特特定定元元素素,需需要要指指定定数数组组的的引引
49、用用名名以以及及该该元元素素位位置置序序号号。元元素素的的位位置置序序号号称称为为元元素的索引素的索引(index)或下标或下标(subscript)。例:整数数组例:整数数组arrayc,表示有表示有12个元素。个元素。索索引引必必须须是是非非负负整整数数,索索引引可可以以用用表表达达式式,例例如如,int a=5,b=6;则则ca+b+=2;格式:格式:数组变量数组变量下标下标 c0,c1,c2,c3,c4,c1182835.数组元素的运算数组元素的运算int sum=c0+c1+c2;int x=c6/2;int i=2;ai=ai-2+ai-1;846.数组声明时赋初值数组声明时赋初值
50、int a=1,2,3,4,5;85例创创建建一一个个基基本本数数据据类类型型元元素素的的数组:数组:public char createArray()char s;s=new char 26;for(int i=0;i 26;i+)s i=(char)(A+i);return s;86例创建一个对象数组:创建一个对象数组:public Point createArray()Point p;p=new Point 10;for(int i=0;i=0)个个字字符符的的有有限限序序列列。字字符符串串中中包包含含的的字字符符个个数数称称为为字字符符串串的的长长度度,长长度度为为0的字符串称为空串,