《第二讲语言基础课件.ppt》由会员分享,可在线阅读,更多相关《第二讲语言基础课件.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二讲语言基础1第1页,此课件共71页哦java语言的词法语言的词法1 1、分隔符、分隔符 2 2、注释、注释 3 3、标识符、标识符 4 4、关键字、关键字 2第2页,此课件共71页哦1.1.分隔符分隔符 Java是是一一种种自自由由格格式式的的语语言言,可可以以用用任任意意个个空空格格、制表符、换行符制表符、换行符隔开每个词。如:隔开每个词。如:System.out.println(Counted +count+chars.);分分号号作作为为语语句句的的结结束束符符,每每个个语语句句必必须须以以分分号号作作为为结束符。结束符。3第3页,此课件共71页哦2.2.注释注释三种注释格式:三种注
2、释格式:n/实现单行注释实现单行注释n/*这是这是一段注释,一段注释,它跨越了多个行它跨越了多个行*/n/*JDK的的javadoc工具用这种注释信息能自动从程工具用这种注释信息能自动从程序中抽出类的公共接口形成文档。序中抽出类的公共接口形成文档。*/4第4页,此课件共71页哦3.3.标识符标识符1.标识符可以由字母、数字和两个特殊字符下划线(标识符可以由字母、数字和两个特殊字符下划线(_)、)、美元符号(美元符号($)组合而成。)组合而成。2.标识符必须以字母、下划线或美元符号开头。标识符必须以字母、下划线或美元符号开头。3.Java是大小写敏感的语言,是大小写敏感的语言,class和和Cl
3、ass分别代表不同的分别代表不同的标识符。标识符。4.应该是标识符能一定程度上反映它所表示的变量、常量、应该是标识符能一定程度上反映它所表示的变量、常量、对象或类的意义。对象或类的意义。例如:例如:User_Name,_sys_val,$change为合法的标识符,为合法的标识符,而而2mail room#,class 为非法的标识符。为非法的标识符。5第5页,此课件共71页哦4.4.关键字关键字abstractbooleanbreakbytecasecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatf
4、orgoto*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile关键字关键字是由系统定义的一些词,它们在程序里代表特定的含义。定义标是由系统定义的一些词,它们在程序里代表特定的含义。定义标识符时要避免使用这些词。识符时要避免使用这些词。n1.java1.java语言中的保留字均用小写字母表示。语言中的保留字均
5、用小写字母表示。n2.goto2.goto和和constconst虽然在虽然在JavaJava中不被使用,但仍是关键字。中不被使用,但仍是关键字。6第6页,此课件共71页哦n变量:变量:是是java 程序中的基本存储单元,它的定义包括变量程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。其定义格式如下:名、变量类型和作用域几个部分。其定义格式如下:typeSpecifier varName=value;如:如:int count;char c=a;变变 量量 变量必须先说明后使用。变量必须先说明后使用。变量名是一个合法的标识符,以小写字母开头,若一个变量名变量名是一个合法的标
6、识符,以小写字母开头,若一个变量名由超过一个单词所组成,则第一个单词之后的所有单词都以大写字由超过一个单词所组成,则第一个单词之后的所有单词都以大写字母开头,以便于理解该变量名。母开头,以便于理解该变量名。7第7页,此课件共71页哦 Java的的变变量量有有两两种种:局局部部变变量量、类类成成员员变变量量。局局部部变变量量在在使使用用前前必必须须给给定定初初值值,否否则则,Java将将不不编编译译,而而类类成成员员变变量量无无此此要求。要求。变量类型可以是基本数据类型和引用类型。变量类型可以是基本数据类型和引用类型。变量变量 变量的作用域指明可访问该变量的一段代码,按作用变量的作用域指明可访问
7、该变量的一段代码,按作用域来分,变量可以有下面几种:域来分,变量可以有下面几种:n局部变量局部变量 Local variable n类变量类变量 Member variable n方法参数方法参数 Method parameter n例外处理参数例外处理参数 Exception-handler parameter 8第8页,此课件共71页哦n局部变量在方法或方法的一个块代码中声明,它的作用域局部变量在方法或方法的一个块代码中声明,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。为它所在的代码块(整个方法或方法中的某块代码)。n类变量在类中声明,而不是在类的某个方法中声明,它的作类变量
8、在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。用域是整个类。n方法参数传递给方法,它的作用域就是这个方法。方法参数传递给方法,它的作用域就是这个方法。n例外处理参数传递给例外处理代码,它的作用域就是例外处例外处理参数传递给例外处理代码,它的作用域就是例外处理部分。理部分。变量的作用域变量的作用域9第9页,此课件共71页哦例例1.1.变量的作用域变量的作用域10第10页,此课件共71页哦 常量是指在程序运行过程中其值不变的量。常量是指在程序运行过程中其值不变的量。常量的表示形式:常量的表示形式:final 变量类型变量类型 变量名变量名常常 量量final typeSpecifie
9、r varName=value;如:如:final int NUM=100;11第11页,此课件共71页哦数据类型数据类型基本基本/简单数据类型(简单数据类型(primitive type:)字符型:字符型:char 整整 型:型:byte,short,int,long 浮点型:浮点型:double,float 布尔型:布尔型:boolean (取值取值 true 或或 false)引用引用/参考数据类型(参考数据类型(reference type)class interface 数组数组12第12页,此课件共71页哦数据类型名数据类型名 占用内存空间占用内存空间 数值范围数值范围 缺省值缺省
10、值 说说 明明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 浮浮点点型型 double 8字节字节(1.79769313486231570E+308)(4.94065645841246544E-324)0.0D char2字节字节u0000 uFFFFu0000字
11、符型字符型boolean 1字节字节 true 或或 false False 布尔型布尔型 基本数据类型表基本数据类型表注:缺省值就是默认的初值注:缺省值就是默认的初值,只对成员变量有用,局部变量在使用前必须人为地给定初值只对成员变量有用,局部变量在使用前必须人为地给定初值13第13页,此课件共71页哦布尔型变量布尔型变量-boolean 布尔型数据只有两个值布尔型数据只有两个值true和和false,且它们,且它们不对应于任何整数值。布尔型变量的定义如:不对应于任何整数值。布尔型变量的定义如:boolean b=true;简单数据类型简单数据类型-布尔型数据布尔型数据14第14页,此课件共7
12、1页哦 1.字符型常量:字符型常量:n字符常量是用单引号括起来的一个字符,如字符常量是用单引号括起来的一个字符,如a,AnUnicode代码,用代码,用16位表示一个字符位表示一个字符n转义转义字符,以反斜杠字符,以反斜杠()开开头头,将其后的字符,将其后的字符转变为转变为另外另外的含的含义义简单数据类型简单数据类型-字符型数据字符型数据15第15页,此课件共71页哦转义字符转义字符 名称名称 Unicode值值 b 退格退格 u0008 t 跳格跳格 u0009 n 换行换行 u000a r 回车回车 u000d”双引号双引号 u0022 单引号单引号 u0027 反斜杠反斜杠 u005c
13、简单数据类型简单数据类型-字符型数据字符型数据16第16页,此课件共71页哦2.字符型变量(字符型变量(char):n它在机器中占它在机器中占16位,其范围为位,其范围为065535n字符型变量的定义如:字符型变量的定义如:char c=a;n可以把它当作整数数据来操作。例如:可以把它当作整数数据来操作。例如:int three=3;char one=1;char four=(char)(three+one);/four=4简单数据类型简单数据类型-字符型数据字符型数据17第17页,此课件共71页哦3.字符串型常量:字符串型常量:n字符串常量是作为字符串常量是作为String类的一个对象来处理
14、的,而不是一个类的一个对象来处理的,而不是一个基本数据基本数据.n字符串常量是用双引号字符串常量是用双引号(“”)括起来的一串字符,如括起来的一串字符,如“This is a string.n”。n字符串连接使用字符串连接使用+操作符操作符 int count=7 例如:例如:Counted +count+chars.n字符串连接使用字符串连接使用+操作符操作符 int x=0,y=1,z=2;String sString=x,y,z;System.out.println(sString+x+y+z);System.out.println(x+sString);简单数据类型简单数据类型-字符型
15、数据字符型数据18第18页,此课件共71页哦1.整型常量:整型常量:n三种表示形式:三种表示形式:十十进进制整数,如制整数,如123,-456,0 八八进进制整数,制整数,以以0开头,例开头,例055表示十进制数表示十进制数45。十六十六进进制整数,以制整数,以0 x或或0X开开头头,如,如0 x123表示十表示十进进制数制数291n整型常量默认为整型常量默认为 int 类型类型,在机器中占在机器中占32位位n对对于于long型型值值,则则要要在在数数字字后后加加L或或l,如如123L表表示示一一个个长整数,在机器中占长整数,在机器中占64位位简单数据类型简单数据类型-整型数据整型数据19第1
16、9页,此课件共71页哦简单数据类型简单数据类型-整型数据整型数据2.整型变量整型变量整型变量的类型有整型变量的类型有byte,short,int,long四种四种数据数据类型型 所占位数所占位数 数的范数的范围 Byte 8-2727-1 Short 16-215215-1 Int 32-231231-1 Long 64-263263-1 20第20页,此课件共71页哦3.整型变量的定义整型变量的定义例如:例如:byte b;/指定指定变变量量b为为byte型型short s;/指定指定变变量量s为为short型型int i;/指定指定变变量量i为为int型型long l;/指定指定变变量量l
17、为为long型型简单数据类型简单数据类型-整型数据整型数据21第21页,此课件共71页哦浮点型数据的表示形式:浮点型数据的表示形式:十进制数形式十进制数形式由数字和小数点组成,且必须有小数点,如由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0 科学计数法形式科学计数法形式如:如:123e3或或123E3,其中,其中e或或E之前必须有数字,且之前必须有数字,且e或或E后面的指后面的指数必须为整数。数必须为整数。浮点型变量有两种类型:浮点型变量有两种类型:float和和double。前者长度为。前者长度为32位,后者位,后者为为64位。位。一个小数默认为一个小数默认为doub
18、le型,若想强调其是型,若想强调其是float类型类型,必须在必须在数字后加数字后加f或或F,如如float t=1.23f。简单数据类型简单数据类型-浮点型数据浮点型数据22第22页,此课件共71页哦 Java中整型、实型、字符型数据可以混合运算。中整型、实型、字符型数据可以混合运算。运算过程中,不同类型的数据会自动转换为同一类型。运算过程中,不同类型的数据会自动转换为同一类型。自动类型转换原则自动类型转换原则:从低数据类型向高数据类型转换从低数据类型向高数据类型转换 即:即:(byte,char)short int long float double 注意:布尔型与其它基本类型之间不能转换
19、注意:布尔型与其它基本类型之间不能转换强制类型转换:强制类型转换:高级数据要转换成低级数据高级数据要转换成低级数据类型转换类型转换23第23页,此课件共71页哦1.自动类型转换规则自动类型转换规则 整型整型,实型实型,字符型数据可以混合运算。运算中,不同类型的字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级;数据先转化为同一类型,然后进行运算,转换从低级到高级;操作数操作数1类型型 操作数操作数2类型型 转换后的后的类型型 byte、short、char int int byte、short、char、int long long byte、shor
20、t、char、int、long float float byte、short、char、int、long、float double double 24第24页,此课件共71页哦形式为:形式为:(类型名类型名)表达式表达式例如:例如:long l=156;byte b;b=(byte)l;注注意意:1.一一般般使使用用强强制制类类型型转转换换可可能能会会导导致致数数值值溢溢出出或或精度的下降,应尽量避免。精度的下降,应尽量避免。2.布尔型与其它基本类型之间不能转换布尔型与其它基本类型之间不能转换强制类型转换强制类型转换25第25页,此课件共71页哦运算符和表达式运算符和表达式 运算符指明对操作数
21、所进行的运算,按功能分类:运算符指明对操作数所进行的运算,按功能分类:n算术运算符算术运算符(+,-,*,/,%,+,-)n关系运算符关系运算符(,=,&,|,)n赋值运算符赋值运算符(=,及其扩展赋值运算符如,及其扩展赋值运算符如+=)n条件运算符条件运算符(?:)n其它其它(包括分量运算符包括分量运算符,下标运算符,下标运算符,实例运算符,实例运算符 instanceof,内存分配运算符,内存分配运算符new,强制类型转换运算符,强制类型转换运算符(类类型型),方法调用运算符,方法调用运算符()等等)26第26页,此课件共71页哦算术运算符算术运算符 算术运算符:算术运算符:+,*,/,=
22、,+,-Java对对“+”运算符运算符进进行了行了扩扩展,使它能展,使它能够进够进行字符串行字符串的的连连接,如接,如“abc”+“de”,得到串,得到串“abcde”增值增值/减值操作符:减值操作符:+,-注:注:i+或或i-:先将值返回,再执行增:先将值返回,再执行增1或减或减1的操作,的操作,+i或或-i:先执行增:先执行增1或减或减1操作,再将值返回。操作,再将值返回。eg:int i=10;int j=+i;int k=i+;27第27页,此课件共71页哦关系运算符关系运算符说明说明:nJava中中,任任何何数数据据类类型型的的数数据据(包包括括基基本本类类型型和和组组合合类类型型)
23、都都可可以以通通过过=或或!=来来比比较较是是否否相相等等(这这与与C、C+不同不同)。n关关系系运运算算的的结结果果返返回回true或或false,而而不不是是C、C+中的中的1或或0。n等于和不等于适用于所有内建的数据等于和不等于适用于所有内建的数据类类型,但其他比型,但其他比较较不适用于不适用于boolean类类型。型。28第28页,此课件共71页哦说明:说明:n检查对检查对象是否相等象是否相等public class Equivalence public static void main(String args)Integer n1=new Integer(47);Integer n2
24、=new Integer(47);System.out.println(n1=n2);System.out.println(n1!=n2);结果:结果:false true关系运算符关系运算符29第29页,此课件共71页哦说明:说明:n若若想想对对比比两两个个对对象象的的实实际际内内容容是是否否相相同同,使使用用方方法法equals()。例如:例如:public class EqualsMethod public static void main(String args)Integer n1=new Integer(47);Integer n2=new Integer(47);System.o
25、ut.println(n1.equals(n2);关系运算符关系运算符30第30页,此课件共71页哦说明说明:n假设您创建了自己的类,结果如何?例如:假设您创建了自己的类,结果如何?例如: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);结果:结果:false关系运算符关系运算符31第31页,此课件共71页哦
26、逻辑运算符逻辑运算符 逻逻辑辑运运算算符符AND(&,&)、OR(|,|)、XOR()以以及及NOT(!)能生成一个布尔值()能生成一个布尔值(true或或false)。)。说明:说明:只只可可将将AND,OR或或NOT应应用用于于布布尔尔值值。不不可可将将一一个个非非布尔值当作布尔值在逻辑表达式中使用布尔值当作布尔值在逻辑表达式中使用 例如:以下是非法的。例如:以下是非法的。int i=1,j=2;i&ji|j!i以下是合法的以下是合法的:(i 10)&(j 10)(i 10)&(j 10)32第32页,此课件共71页哦说明:说明:对浮点数字的比较是非常严格的。对浮点数字的比较是非常严格的。
27、短路运算:与短路运算:与“&”,或,或“|”注:逻辑操作符运算时先将两端的表达式计算出来,然后注:逻辑操作符运算时先将两端的表达式计算出来,然后再进行逻辑运算。短路操作符在某些情况下跳过对右边表再进行逻辑运算。短路操作符在某些情况下跳过对右边表达式的计算。达式的计算。1、a&b&c2、a|b|c3、x=y=true,a=5,b=3,c=2,d=1 (x=ab)&(y=cop1 op2op1右移右移op2位位op1 op1 op2op1无符号右移无符号右移op2位位位运算符位运算符35第35页,此课件共71页哦位运算符(位运算符(,)说明说明:n:将一个数的各二将一个数的各二进进制位全部右移若干
28、位制位全部右移若干位,移到右端移到右端的低位被舍弃,最高位的低位被舍弃,最高位则则移入原来高位的移入原来高位的值值 例如例如:a=00110111,则,则a2=00001101b=11010011,则,则 b2=11110100n:一个数的各二一个数的各二进进制位制位无符号无符号右移若干位,与运算右移若干位,与运算符符相同,移出的低位被舍弃,但不同的是相同,移出的低位被舍弃,但不同的是最高位最高位补补0。如如 a=00110111,则则 a2=00001101 b=11010011,则则 b2=0011010036第36页,此课件共71页哦赋值运算符赋值运算符说明说明:n在赋值运算符两侧的类型
29、不一致的情况下:在赋值运算符两侧的类型不一致的情况下:Java允允许许将将任任何何基基本本类类型型转转换换为为为为其其他他任任何何一一种基本类型。但布尔值(种基本类型。但布尔值(bollean)要除外。)要除外。如如果果左左侧侧变变量量的的数数据据类类型型的的级级别别高高,则则右右侧侧的的数数据据被被自自动动转转化化为为与与左左侧侧相相同同的的高高级级的的数数据据类类型,然后赋给左侧变量型,然后赋给左侧变量否则,需要使用否则,需要使用强制类型转换强制类型转换运算符运算符 类对象不能随便进行强制类型转换类对象不能随便进行强制类型转换37第37页,此课件共71页哦说明说明:续续例如:例如:long
30、 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,illegal38第38页,此课件共71页哦扩展赋值运算符扩展赋值运算符运算符运算符例子例子解释解释+=x+=ax=x+a-=x-=ax=x-a*=x*=ax=x*a/=x/=ax=x/a%=x%=ax=x%a&=x&=ax=x&a|
31、=x|=ax=x|a=x=ax=xa=x=ax=x=x=ax=xa=x=ax=xa39第39页,此课件共71页哦条件运算符条件运算符条件运算符条件运算符?:为三元运算符,它的一般形式为:为三元运算符,它的一般形式为:expression?statement1:statement2例如:例如:ratio=denom=0?0:num/denom;40第40页,此课件共71页哦优先先级 运运 算算 符符 类 型型 1()()2+、-、+、-、!、!、单目运算符目运算符 3*、/、%算算术运算符运算符 4+、-算算术运算符运算符 5 、移位运算符移位运算符 6、=关系运算符关系运算符 7=、!=关系运
32、算符关系运算符 8&逻辑运算符运算符 9 逻辑运算符运算符 10?:?:条件运算符条件运算符 11=、+=、-=、*=、/=、%=、=赋值运算符运算符 12&=、|=、=、=运算符的优先级运算符的优先级41第41页,此课件共71页哦表达式表达式 n表达式是由操作数和运算符按一定的语法形式组成的符号序列。表达式是由操作数和运算符按一定的语法形式组成的符号序列。1表达式的类型表达式的类型 表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型:类型,也可以是复合类型:布尔型表达式:布尔型表达式:x&y|z;整型
33、表达式:整型表达式:num1+num2;2运算符的优先次序运算符的优先次序 表达式的运算按照运算符的优先顺序从高到低进行表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左同级运算符从左到右进行:先单运算符,而后乘除加减,然后位运算符,之后比较运到右进行:先单运算符,而后乘除加减,然后位运算符,之后比较运算,然后赋值运算。算,然后赋值运算。42第42页,此课件共71页哦程序结构程序结构 Java程程序序通通过过控控制制语语句句来来执执行行程程序序流流,完完成成一一定定的的任任务务。程程序序流流由由若若干干个个语语句句组组成成,语语句句可可以以是是单单一一的的一一条条语语句句,如如c=a
34、+b,也也可可以以是是用用大大括括号号括括起起来来的的一一个个复复合合语语句。句。Java中的控制语句有以下几类:中的控制语句有以下几类:n分支语句:分支语句:if-else,switchn循环语句:循环语句:while,do-while,forn与与 程程 序序 转转 移移 有有 关关 的的 跳跳 转转 语语 句句:break,continue,return,labeln例外处理语句:例外处理语句:try-catch-finally,throw43第43页,此课件共71页哦 if-else语句的语法形式:语句的语法形式:if (布尔表达式布尔表达式)语句语句1 else 语句语句2 若无若无
35、else部分,部分,if语句的流程如语句的流程如图图1所示:所示:若有若有else部分部分,if语句的流程如语句的流程如图图2所示。所示。若语句若语句1,语句,语句2也是也是if-else语句便形成语句便形成嵌套嵌套if else 语句语句44第44页,此课件共71页哦布尔表达式布尔表达式语句语句1if的后继语句的后继语句falsetrue图图1 无无else部分的部分的if语句的流程语句的流程45第45页,此课件共71页哦布尔表达式布尔表达式if的后继的后继falsetrue图图2 有有else部分的部分的if语句的流程语句的流程语句语句1语句语句246第46页,此课件共71页哦例题:比较两
36、个数的大小,并按从小到大的次序输出。例题:比较两个数的大小,并按从小到大的次序输出。public class CompareTwopublic static void main(String args )double d1=23.4;double d2=35.1;if(d2=d1)System.out.println(d2+=+d1);elseSystem.out.println(d1+=+d2);47第47页,此课件共71页哦 if-else语句中内嵌的语句语句中内嵌的语句1或语句或语句2又是又是if-else语句的情况称为语句的情况称为if-else语句的嵌套。如:语句的嵌套。如:if(布
37、尔表达式(布尔表达式1)语句语句1 else if(布尔表达式(布尔表达式2)语句语句2 else if(布尔表达式布尔表达式m)语句语句m else 语句语句nif else 语句的嵌套语句的嵌套48第48页,此课件共71页哦 switch语句根据表达式的结果来执行多个可能操语句根据表达式的结果来执行多个可能操作中的一个,它的语法形式如下:作中的一个,它的语法形式如下:switch(表达式表达式)case 常量常量1:语句:语句1;break;case 常量常量2:语句:语句2;break;case 常量常量n:语句:语句n;break;default:缺省处理语句;缺省处理语句;break
38、;/这的这的break语句不必要语句不必要 switch 语句语句49第49页,此课件共71页哦表达式表达式语句语句1break语句语句2breakbreak语句语句nbreak缺省处理语句缺省处理语句后继语句后继语句常量常量2defaultswitch语句的流程语句的流程常量常量1常量常量n50第50页,此课件共71页哦表表达达式式expression可可以以返返回回任任一一整整型型类类型型的的值值(如如整整型型、字字符型符型);case子子句句中中的的值值必必须须是是常常量量,而而且且所所有有case子子句句中中的的值值应应是不同的;是不同的;default子子句句是是任任选选的的,当当表
39、表达达式式的的值值与与任任一一case子子句句中中的的值值都都不不匹匹配配时时,程程序序执执行行default后后面面的的语语句句;如如果果表表达达式式的的值值与与任任一一case子子句句中中的的值值都都不不匹匹配配且且没没有有default子子句句,则则程程序序不不做做任何操作,而是直接跳出任何操作,而是直接跳出switch语句。语句。如果将如果将default语句放在了第一行,程序该如何执行呢?语句放在了第一行,程序该如何执行呢?switch 语句语句-说明说明51第51页,此课件共71页哦case通通常常与与break语语句句联联用用,以以保保证证多多路路分分支支的的正正确确实实现现。因
40、因为为case子子句句只只是是起起到到一一个个标标号号的的作作用用,用用来来查查找找匹匹配配的的入入口口并并从从此此处处开开始始执执行行,对对后后面面的的case子子句句不不再再进进行行匹配,而是直接执行其后的语句序列。匹配,而是直接执行其后的语句序列。多个多个case可以公用一组执行语句可以公用一组执行语句。case 1:case 2:case 3:cout“hello”;break;case 1,2,3:cout“hello”/errorswitch 语句语句-说明说明52第52页,此课件共71页哦class SwitchDemo public static void main(Strin
41、g args)int month=7;String season;switch(month)case 12:case 1:case 2:season=”冬季冬季“;break;case 3:case 4:case 5:season=“春季春季”;break;casecase 6:6:case case 7:7:casecase 8:season=8:season=“夏季夏季”;break;break;case case 9:9:case case 10:10:casecase 11:season=11:season=”秋季秋季”;breakbreak;default default:seaso
42、n=season=”错错!”;System.out.println(System.out.println(“月份月份 季节季节”););System.out.println(month+System.out.println(month+“”+season);+season);例例 用用switch语句判断一个月份属于一年哪个季节语句判断一个月份属于一年哪个季节(春、夏、秋、冬春、夏、秋、冬)。值为值为1212、1 1和和2 2时将时将都执行:都执行:season=season=”冬季冬季“;break;break;该程序运行后输出:该程序运行后输出:月份月份 季节季节 7 7 夏季夏季53第5
43、3页,此课件共71页哦 Java循环语句有循环语句有while、do-while和和for三种。三种。while while 语句语句 do-while do-while 语句语句 for for 语句语句循环的嵌套循环的嵌套循环语句循环语句54第54页,此课件共71页哦whilewhile语句形式如下:语句形式如下:while(while(布尔表达式布尔表达式)语句语句while 语句语句 whilewhile语句的语句的关键字关键字循环循环条件条件 循环体,是一个语循环体,是一个语句,若是多个语句则句,若是多个语句则应构成复合语句应构成复合语句55第55页,此课件共71页哦class su
44、m public static void main(String args)int n=100;int i=1;float s=0;while(i=100)s=s+(1.0f/i);i+;System.out.println(“s=”+s);例例.用用while循环语句计算循环语句计算s=1+1/2+1/3+1/100。56第56页,此课件共71页哦 do-whiledo-while语句的语法形式如下:语句的语法形式如下:dodo 语句语句 whilewhile(布尔表达式(布尔表达式A A);do-while 语句语句dodo语句语句的的关键字关键字循环体,是一个语句,循环体,是一个语句,若
45、是多个语句则应构若是多个语句则应构成复合语句成复合语句循环条件循环条件 程序先执行循环体中语句,然后检查程序先执行循环体中语句,然后检查A是否满足,满足则执行是否满足,满足则执行循环体中的语句,执行完再检查循环体中的语句,执行完再检查A是否满足,如此反复执行直到是否满足,如此反复执行直到A不不满足为止。满足为止。57第57页,此课件共71页哦for语句的语法形式为:语句的语法形式为:for(表达式(表达式1;表达式;表达式2;表达式;表达式3)语句语句for语句的执行过程如下:语句的执行过程如下:(1)按表达式)按表达式1将初值赋给循环控制变量。将初值赋给循环控制变量。(2)按表达式)按表达式
46、2判断循环是否成立,即判断控制变量的值判断循环是否成立,即判断控制变量的值for 语句语句循环体,是一循环体,是一个语句,若是个语句,若是多个语句则应多个语句则应构成复合语句构成复合语句循环条件循环条件58第58页,此课件共71页哦求解表达式求解表达式1表达式表达式2循环体循环体求解表达式求解表达式3for语句的下一语句语句的下一语句falsetruefor语句的流程语句的流程59第59页,此课件共71页哦逗逗号号语语句句分分隔隔的的语语句句系系列列,被被看看作作一一个个语语句句,这这样样就就可可以以在在只只能能放放一个语句的地方放任意多个语句,只须用逗号将它们分隔开。如:一个语句的地方放任意
47、多个语句,只须用逗号将它们分隔开。如:for(i=1,j=10;ij;i+,j-)表达式表达式1、表达式、表达式2及表达式及表达式3都可以为空语句都可以为空语句(但分号不能省略但分号不能省略)如:如:for(;)使使用用for语语句句还还需需注注意意:循循环环内内修修改改循循环环控控制制变变量量,往往往往会会带带来来预预想想不不到的结果,因此应慎用。到的结果,因此应慎用。60第60页,此课件共71页哦for(int i=0;i3;i+)System.out.println(i);int j=2;for(;j10;)System.out.println(j);j+;61第61页,此课件共71页哦
48、 一一个个循循环环体体内内又又包包含含另另一一个个完完整整的的循循环环结结构构,称称为为循循环环的的嵌嵌套套。内内嵌嵌的的循循环环中中还还可可以以嵌嵌套套循循环环,这这就就是是多多重重循循环环。上上述述三三种种循循环环(whilewhile循循环环,do-whiledo-while循循环环和和forfor循循环环)语语句句之之间间可可以以相相互互嵌嵌套使用。套使用。循环的嵌套循环的嵌套62第62页,此课件共71页哦 Java不支持无条件跳转的不支持无条件跳转的goto语句。语句。Java的跳的跳转语句有三种转语句有三种 break语句语句 continue语句语句 return 语句语句 跳转
49、语句跳转语句63第63页,此课件共71页哦作用:使程序的流程从一个语句块的内部跳转出来。作用:使程序的流程从一个语句块的内部跳转出来。1)1)从从switchswitch语句的分支中跳出来语句的分支中跳出来 2)2)从循环体内跳出来从循环体内跳出来 break 语句语句格式:格式:break 标号标号;1)无标号:跳出当前整个语句块)无标号:跳出当前整个语句块 2)有标号:跳出标号指处的语句块)有标号:跳出标号指处的语句块64第64页,此课件共71页哦 continue语句只能在循环语句中使用语句只能在循环语句中使用 格式格式:continue 标号标号;(1)无标号:)无标号:用来结束所在循
50、环语句块的本次循环用来结束所在循环语句块的本次循环(2)有标号:)有标号:跳过标号所指的循环语句所有余下部分语跳过标号所指的循环语句所有余下部分语句,句,直接转入标号标明的循环层次。直接转入标号标明的循环层次。注:注:break使程序跳出当前循环,使程序跳出当前循环,continue终止当前这一终止当前这一轮的循环,跳过本轮剩余的语句,直接进入当前循环的轮的循环,跳过本轮剩余的语句,直接进入当前循环的下一轮下一轮。continue 语句语句65第65页,此课件共71页哦nouter:for(int i=0;i10;i+)/外层循环外层循环 n inner:for(int j=0;j10;j+)