1、1,第二章Java基本语法,2,第二章Java基本语法,教学目的: 通过本章的学习,使学生能掌握Java语言的数据类型及其表示方法、变量的定义和赋值、Java基本语句结构和使用方法,了解和掌握Java语言的各种运算符号和表达式,熟练掌握一维数组的使用,了解二维数组的应用, 教学重点和难点: 数据类型的特点和使用,各种运算符的使用,Java基本语句结构和使用方法,一维数组的定义和使用。,3,第二章Java基本语法,2.1Java字符 2.2数据类型、常量和变量 2.3运算符和表达式 2.4Java语句 2.5数组,4,2.1Java字符,Java程序由字符组成 Unicode字符集:65535个
2、字符,字母包括下面几种:A-Z、a-z、汉字、日文片假名、平假名和朝鲜文 Unicode字符格式:udddd,d是一位十六进制数 例: u0030-u0039表示0-9 由Unicode字符按照一定的语法规则构成了标识符、保留字、分隔符、运算符等.,5,2.1Java字符,1、标识符 标识符由字母、下划线、美元符号和数字组成,但不能为数字开头,不能是关键字。合法标识符:Hello、$1234、_www123非法标识符:Hello 、class、903 标识符的用处:Java中的类、包、变量、方法、数组和文件的名字都是标识符 Java语言区分大小写如Number和number不是相同标识符,6,
3、附:Java编程规范,源文件的命名规则: 1)包名小写字母,点号分隔 例如:java.awt.event 2)类名、接口名多个单词组成,每个的首字母大写 例如:HelloWorld 3)方法名多个单词组成,第一个的首字母小写,其余的首字母大写 4)变量名小写名词 5)常量名大写,7,2.1Java字符,2、关键字 关键字就是Java语言中已经被赋予特定意义的一些标识符,不允许程序员在程序中用作类名、变量名和方法名等。 常见有:class、public、static、void、int、float、package、import等,8,2.1Java字符,3、分隔符 标识Java程序各组成元素的起始
4、和结束。 Java的分隔符有两种:空白符和普通分隔符 1)空白符:空格、回车、换行和制表符等,单纯分隔作用,系统可忽略它。 2)普通分隔符:有确定的含义,系统不可忽略它。 :定义类体、方法体和数组初始化等 :定义数组或引用数组中的元素 ( ):在方法中,将参数括起来;定义表达式中运算的先后顺序 ;:语句结束标志 ,:分隔方法的参数和多个变量说明等 . :分隔包或分隔对象和对象的成员,例如:public static void main(String args) System.out.println(“hello”);,9,2.1Java字符,4、注释 对程序代码进行说明,帮助理解代码的作用 J
5、ava有三种注释方式: 1)以/开始的注释:注释一行文字 2)以/*.*/括起来的注释:注释一行或多行文字 3)以 /*开始,*/结束的注释:生成程序文档中注释内容 一般情况下,使用前两种方法注释 JDK提供的javadoc工具用于生成程序的注释文档,例如:javadoc private HelloApp.java,10,2.2数据类型、常量和变量,1、数据类型 Java有两种数据类型:基本类型和引用类型 1)基本数据类型 布尔型:boolean true和false 字节型:byte byte b=10; 字符型:char char c=h; 短整型:short 整型:int 长整型:lon
6、g 浮点型: float 双精度型:double 2)引用数据类型 数组 类(class) 接口(interface),定义实数,例如:求两个实数的和。double f1=10.3,f2=7.2;double sum=0;sum=f1+f2;,定义整数,例如:求两个整数的积。int i=10,j=7;int sum=0;sum=i*j;,11,2.2数据类型、常量和变量,不同数据类型的数据占用不同的内存空间(字节数),取值范围也不同。 boolean:占1B,取值只有两个:true和false byte:占1B,取值范围为-2727-1 char:占2B,取值范围为0216-1,即 0-655
7、35 short:占2B,取值范围为-215215-1 (-32768-32767),12,2.2数据类型、常量和变量,int:占4B,取值范围为-231231-1 long:占8B,取值范围为-263263-1 float:占4B,取值范围为1.4E-453.4E+38, -1.4E-45-3.4E+38 double:占8B,取值范围为4.9E-3211.7E+308, -4.9E-321-1.7E+308,13,2.2数据类型、常量和变量,2、变量 在程序运行过程中,数值可变的量,用于存放运算数据。 1)变量的声明 使用变量时,必须指出变量的数据类型和变量名,即进行变量的声明。 变量声明
8、(定义)格式: ; 访问修饰符和存储修饰符:可选项 数据类型:必选项,基本数据类型或类的名称。 变量名:必选项,是合法的标识符,14,2.2数据类型、常量和变量,注:变量名首字母小写,变量名前加上表示变量类型的前缀(注:byte类型前缀为bt) 例如:boolean bFlag;/声明布尔型变量bFlagint iCount;/声明整型变量iCountint grade;int java;float fSun;/声明浮点型变量fSun,15,2.2数据类型、常量和变量,2)变量初始化 变量初始化即给变量赋初值,Java使用“=“号为变量赋初值 例如:bFlag=true;iCount=100;
9、fSun=12f等grade=80;grade=40;java=90;对于基本数据类型,可以在声明的同时初始化 例如:boolean bFlag=true;int iCount=100;注:给变量赋值时,应保证“=“号右边的常量的类型同左边的变量的数据类型一致,否则导致错误 例如:bFlag=100;iCount=12f;,16,2.2数据类型、常量和变量,3、常量 在程序中以数据值形式出现,且保持不变,用于变量的赋值或表达式运算。 每个常量属于一种数据类型 1)布尔常量:true和false两个值,分别代表真和假 2)整型常量:整数值,包括十进制,十六进制(0x开头),八进制(0开头),如0
10、X12=18,012=10 3)长整型常量:整数值后加L或l ,如13L 4)单精度浮点型常量:浮点数值后加F或f,如5.1F,2e3f=2*103=2000 5)双精度浮点型常量:浮点数值后加D或d ,如5.1D,2e-3d,17,2.2数据类型、常量和变量,6)字符常量:用一对单引号括起来的单个字符(如a,8)、字符编码(u0027 )和转义字符 转义字符:一些具有特殊含义和功能的字符(如回车、换行等),以反斜线()开头,后面跟一个表示特定含义的字符。 r 是回车 n 是换行 t 是制表符,相当于Table键 b 是退格键,相当于BackSpace 是单引号 是双引号 是一个斜杠,18,2
11、.2数据类型、常量和变量,7)字符串常量:用一对双引号括起来的字符序列,如“Hello world”,”123” 注:当字符串中之包含一个字符时,与字符常量仍不同,如a与 “a”不同,19,2.3运算符和表达式,一、运算符(进行运算操作的符号) Java运算符分类:赋值运算、算术运算、关系运算、逻辑运算符、位运算、条件运算符等。 1、赋值运算符 “=”号是最简单的赋值运算符, 赋值运算的格式:变量=表达式; 赋值运算的含义:把表达式的值赋给变量 注:表达式的结果要与左边的变量类型一致,或能够转换为左边变量的类型。,20,2.3运算符和表达式,赋值运算符“=”可以与其他运算符结合,实现运算和赋值
12、的双重功能。组合方式为: =; 例如:int i=5;i+=21; i=i+21; 复合赋值运算的含义:将变量与表达式进行指定运算后,再将运算结果赋给变量。 练习:int a=2,b=5;a*=3; b+=a;,a=a*3;,a=2*3=6,b=b+a;,b=5+6=11,i=26,b+=a*b; b=b+(a*b); b*=a+b; b=b*(a+b);,21,2.3运算符和表达式,2、算术运算符 用于对整型数(包括byte类型)和浮点数(float、double类型)进行计算,结果为整型或浮点型 算术运算符分为单目和双目运算符,前者只有一个参与运算的操作数,后者有两个操作数。,22,2.3
13、运算符和表达式,int iCount=99; int iSun=0; iSun=iCount-;/iSun=iCount=99;iCount=99-1; iSun=-iCount; /iCount=99+1;iSun=iCount=100;,23,2.3运算符和表达式,3、关系运算符 用于对两个表达式进行比较,成立则返回true,否则,返回false 关系运算符有:、=、5值为true10=9值为false10!=9 值为true 一般构成判断表达式,作为分支结构或循环结构的控制条件,等号,不等号,24,2.3运算符和表达式,4、逻辑运算符 用于连接关系表达式,对其值进行逻辑运算 逻辑运算符有
14、:&(逻辑与)、|(逻辑或)、!(逻辑非)。 1) &(逻辑与):两个关系表达式的值都为true,结果为true;否则,结果为false 2) |(逻辑或):两个关系表达式的值都为false,结果为false;否则,结果为true 3)!(逻辑非):关系表达式的值为true,结果为false;否则,结果为true 例: (96)&(100125)!true值为false,(Java90)|(english90) (java90)&(english90),25,2.3运算符和表达式,5、位运算符 对二进制(0,1)进行操作,操作数只能是整数,结果为整数。 主要用于工业测试或控制场合,26,2.3
15、运算符和表达式,例: X=101011 X3:X=111101 X2: X=001010 X2: X=101100,对应位相同,结果为0,否则,结果为1,某位为0,结果为1;某位为1,结果为0,例:X=01111110 ,Y=01000000 X&Y=01000000 X|Y=01111110 XY=00111110 X=10000001,27,2.3运算符和表达式,6、条件运算符(三目运算符) 格式为: 表达式1? 表达式2 : 表达式3 含义:表达式1的值为true,则表达式2的值是整个表达式的值,否则,表达式3的值是整个表达式的值。 例:1)X=2,Y=3,Z=2X3?Y:Z值为32)X
16、=5,Y=3,Z=2X3?Y:Z值为2,28,2.3运算符和表达式,7、其他运算符 强制类型转换:在赋值运算中,如果右边表达式类型所占字节数大于左边,则要强制将右边类型转换为左边类型。 格式:(类型 )(右边表达式) 例如:int iVar=(int)(166+3.7f)iVar的值为169 自动类型转换:在一个表达式中,如果存在不同类型的数据,字节少的类型自动转换成字节多的类型。 转换规律(右看齐):byteshort或 charintlongfloatdouble 例如:float x; x=129;/129为整数,赋值时先转换成浮点数129.0在进行赋值,29,提问:,Java2平台有哪
17、三个版本?Java常用开发工具有哪四种?Java语言的字符集是( )。 什么是标识符?,Unicode字符集,标识符由字母、下划线、美元符号和数字组成,但不能为数字开头,不能是关键字。,J2SE、J2EE、J2ME,JDK、Jcreator、JBuilder、Eclipse,30,提问:,Java的基本数据类型有哪些?字符常量和字符串常量的概念说明以下转义字符的含义 1)n 表示 2) 表示 3) 表示 4) 表示,布尔型(boolean)、字节型(byte)、字符型(char)、 短整型(short)、整型(int)、长整型(long)、 浮点型(float)、双精度型(double),字符
18、常量用一对单引号括起来的单个字符 字符串常量用一对双引号括起来的字符序列,换行,单引号,双引号,斜杠,31,提问:,i+和+i的异同点?Java运算符主要包括哪六类?什么是强制类型转换?什么是自动类型转换?,不同点: i+:先取i值,然后i的值加1 +i:i的值先加1,然后再取i的值 相同点: i的值都加1,赋值运算、算术运算、关系运算、逻辑运算符、位运算、条件运算符。,在赋值运算中,如果右边表达式类型所占字节数大于左边,则要强制将右边类型转换为左边类型。,在一个表达式中,如果存在不同类型的数据,字节少的类型自动转换成字节多的类型。,32,2.3运算符和表达式,二、表达式 表达式由变量、常量和
19、运算符等组成。 例: (a+b)*c/2,若 a=4,b=5,c=6, 则表达式的值为19 表达式的值向字节数最高的类型靠拢! 运算符的优先级:同一表达式中多个运算符被执行的次序 运算符的结合性:同一优先级的运算符被执行的顺序,分为自左向右结合和自右相左结合。,33,运算符优先级和结合性,34,2.3运算符和表达式,例如:1 +2 *1 - 2 +4 fA=3,fB=2,iVar=4fVar=fA+fB*fA-fB+(iVar+);fVar=fA+fB*fA-fB+(+iVar); fVar=(fA+fB)*(fA-fB)+iVar+; X=4,Y=3,Z=2,max,min 1) max=
20、ZX?Z:(XY?X:X=Y)ZY?Z:(XY?Y=X:Y)min= ZX?Z:(XY?X:X=Y) 2)X*=Y+=Z,加括号,5,最后结果3,5,最后结果20,35,2.4Java语句,Java语句:由Java的关键字(如变量定义 int x;)、表达式等构成,以;(分号)结束。 Java语句分四类:表达式语句、方法调用语句、复合语句和控制语句 1.表达式语句x=23; i+; 2.方法调用语句System.out.println(“Hello!”);,36,2.4Java语句,3.复合语句:用把一些语句括起来就构成了一个复合语句z=x+23;System.out.println(“Hel
21、lo”); 4.控制语句:实现有选择的执行或重复执行某条或某些语句的语句,for(i=1;i54;i+) sum=sum+Studentsi.java;,37,2.4Java语句,Java语言控制语句有3种: 条件语句、循环语句和转移语句1.语句1; 2.语句2-及格; 3.语句3-不及格; 4.语句4; 5.语句5;,顺序语句,38,2.4Java语句,1、 条件语句:又称分支语句,根据表达式的值决定进入哪个分支执行。 两分支示意图Java有两种类型的条件语句1)if语句:单分支或双(两)分支2)switch语句:多分支,条件表达式,分支1,分支2,1个、两个或多个,值为真,值为假,39,2
22、.4Java语句,if语句的一般形式: 1)单分支if语句 if(布尔表达式)语句; 说明:当布尔表达式的值为true,则执行语句 例:判断考试是否通过,通过则输出“及格了” if(grade=60) System.out.println(“及格了!”);,可为复合语句,值为true或false,40,2)双分支 if语句 if(布尔表达式)语句1; else语句2; 说明:语句1和语句2只能执行其一,当布尔表达式的值为true,则执行语句1,值为false,则执行语句2,41,if(grade=60)System.out.println(“及格了!”); else System.out.pr
23、intln(“准备补考吧!”);,42,存储器,grade grade=grade+10,80,43,2.4Java语句,例:判断考试是否通过,通过则输出“及格了”,不及格则输出“准备补考吧!” if(grade=60)System.out.println(“及格了!”);if(grade=85)System.out.println(“优秀!”);elseif(grade=80)System.out.println(“良”);elseif(grade=70)System.out.println(“中”);elseSystem.out.println(“及”); else System.out.
24、println(“准备补考吧!”);,可为复合语句,可为复合语句,44,2.4Java语句,3)嵌套的if语句:if语句的分支中使用if语句 一般形式: if(表达式1)语句1; else if(表达式2)语句2;else if(表达式3)语句3;else if( 表达式n)语句n;else语句n+1;,说明: 语句1至语句n+1只能执行其一,当表达式1的值为true时,执行语句1 否则,当表达式2的值为真时,执行语句2 依此类推,当表达式n的值为真时,执行表达式n,否则,执行语句n+1。,45,2.4Java语句,例:判断考试是否通过,通过则输出“及格了”,不及格则输出“准备补考吧!”dy
25、if(grade=90,可为复合语句,可为复合语句,例如:通过if语句的嵌套,将分数转换为等级:A 90-100,B 80-89,C 70-79, D 60-69,E 0-59。If语句代码如下:,46,if(grade60)System.out.println(“准备补考吧!”);elseif(grade70)System.out.println(“及”);elseif(grade80)System.out.println(“中”);else if(grade85)System.out.println(“良”);elseSystem.out.println(“优秀!”);,47,例如:通过i
26、f语句的嵌套,将分数转换为等级:A 90-100,B 80-89,C 70-79, D 60-69,E 0-59。If语句代码如下:,48,2.4Java语句,例如:通过if语句的嵌套,将分数转换为等级:A 90-100,B 80-89,C 70-79, D 60-69,E 0-59。If语句代码如下: If(iScore60)cGrade=E; else if(iScore70)cGrade=D;else if(iScore80)cGrade=C;else if(iScore90)cGrade=B;else cGrade=A;,If(iScore=60)DelseE elseif(iScor
27、e80)Celseif(iScore90)BelseA,49,提问:,Java中语句的标志是?复合语句的标志是?Java有哪几种语句?Java的控制语句有哪三种?Java的if条件语句有哪两种形式?,;, ,if单分支语句和if双分支语句,表达式语句、方法调用语句、复合语句和控制语句,条件语句、循环语句和转移语句,50,2.4Java语句,switch语句:根据一个变量或表达式的值,提供多分支执行路径 一般形式: switch(表达式) case 常量1:语句1;break;case 常量2:语句2;break;.case 常量n:语句n;break;default: 语句n+1; ,说明:
28、switch、case和default是关键字 表达式和常量的值为整数(类型为byte、char、short和int) break语句用于跳出switch语句 switch语句工作原理:先计算表达式的值,将表达式的值与各个常量的值进行比较,若与常量i相同,则执行语句i;若都不相同,则执行default后的语句n+1。,注: 1、常量的值不能相等 2、如果某个分支没有break语句,则会不用判断,继续执行下一个分支,直到遇到break语句。,51,例如:通过switch语句,将等级转换为分数: A 90-100,B 80-89,C 70-79, D 60-69,E 0-59。 char grad
29、e;,52,2.4Java语句,例如:通过switch语句,将等级转换为分数 switch( grade )case A : System.out.println(grade+“ is 90100“);break;case B : System.out.println(grade+“ is 8089“);break;case C : System.out.println(grade+“ is 7079“);break;case D : System.out.println(grade+“ is 6069“);break;case E : System.out.println(grade+“ i
30、s 0 59 “);break;default : System.out.println(“input error“);,char grade=C; 输出结果:C is 7079,如果case D分支去掉break; 输出结果:D is 6069D is 0 59,常量1,常量2,char grade=F; 输出结果:input error,53,switch( number )case 1 : System.out.printlnumber+“ is 系部1“);break;case 2 : System.out.println(grade+“ is 8089“);break;case 3
31、: System.out.println(grade+“ is 7079“);break;case 9 : System.out.println(grade+“ is 6069“);break;case 10 : System.out.println(grade+“ is 0 59 “);break;default : System.out.println(“input error“);,54,2.4Java语句,例如:通过switch语句,将等级转换为分数 switch( grade )case A : case B : case C :case D : System.out.println
32、(”及格了!“);break;case E : System.out.println(“ 不及格 “);break;default : System.out.println(“input error“);,char grade=C; 输出结果:C is 7079,如果case D分支去掉break; 输出结果:D is 6069D is 0 59,常量1,常量2,char grade=F; 输出结果:input error,55,2.4Java语句,例如:通过switch语句,将等级转换为分数 switch( grade/10 )case 9: case 10 : System.out.pri
33、ntln(”A“);break;case 8: System.out.println(”B“);break;case 7 : System.out.println(”C”);break;case 6 : System.out.println(“ D“);break;case 0:case 1:case 2:case 3:case 4:case 5:System.out.println(“ E“);break;default : System.out.println(“input error“);,char grade=C; 输出结果:C is 7079,如果case D分支去掉break; 输
34、出结果:D is 6069D is 0 59,常量1,常量2,char grade=F; 输出结果:input error,56,2.4Java语句,例如:通过switch语句,将等级转换为分数 If(grade=0,char grade=C; 输出结果:C is 7079,如果case D分支去掉break; 输出结果:D is 6069D is 0 59,常量1,常量2,char grade=F; 输出结果:input error,57,2.4Java语句,通过嵌套的if语句,将等级转换为分数 if( grade=A) System.out.println(grade+“ is 90100
35、); else if(grade=B)System.out.println(grade+“ is 8089“);else if(grade=C) System.out.println(grade+“ is 7079“);else if(grade=D)System.out.println(grade+“ is 6069“);else if(grade=E)System.out.println(grade+“ is 0 59 “);else System.out.println(“input error“); ,switch(grade) dase A: case B: case C: case
36、 D:System.out.println(“jigele”); Break; case E:Sysem.out.println(“bujige”); break; default: ,58,2.4Java语句,2、循环语句 循环:当条件满足时,不断重复执行同一块代码。 Java有三种循环语句: 1)while 2)do-while 3)for,59,2.4Java语句,1) While语句 while一般格式:while(布尔表达式)语句块(循环体) 执行过程:先判断布尔表达式的值,为true,则重复执行循环体(即返回继续判断表达式的值),值为false,则结束循环体(即不执行语句块)。 流
37、程图:,一条或多条语句,i=100,值为真,值为假,sum=sum+i; i=i+1;,循环部分,跳出循环,i=1 sum=0,60,int i=1;sum=0; while(i=100) sum=sum+i; i=i+1; ,int i=1;sum=1; while(i=10) sum=sum*i; i=i+1; ,61,2.4Java语句,例:求15的和 计算过程:1+2+3+4+5 常规思路: int iVar1=1,iVar2=2,iVar3=3,iVar4=4,iVar5=5; int sum=0; sum=iVar1+iVar2+iVar3+iVar4+iVar5;,62,2.4J
38、ava语句,循环实现过程:变量sum存放和值,初值为0,每次累加一个数到sum 1)第一次累加:sum=sum+1 /前一个数的和 2)第二次累加:sum=sum+2 / 前两个数的和 3)第三次累加:sum=sum+3/ 前三个数的和 4)第四次累加:sum=sum+4/ 前四个数的和 5)第五次累加:sum=sum+5/ 前五个数的和,执行过程: 循环前: sum=0 i=1 第1次循环:sum=0+1; i=2 第2次循环:sum=1+2 ; i=3 第3次循环:sum=3+3 ; i=4 第4次循环:sum=6+4 ; i=5 第5次循环:sum=10+5; i=6 第6次循环: i=
39、5,值为false, 退出循环,sum=sum+i,63,2.4Java语句,规律:语句格式相同,即sum=sum+加数,加数由1变到5,用变量i表示,即sum=sum+i; while循环实现:,int i=101; Int sum=0; while(i=100) sum=sum+i; i=i+2; System.out.println(sum);,64,2.4Java语句,练习:计算1100的累加和。,i=100,值为真,值为假,sum=sum+i; i+;,循环部分,跳出循环,int i=1; sum=0; while(i=100) sum=sum+i; i=i+1; System.ou
40、t.println(sum);,65,2.4Java语句,2)do-while语句 do-while一般格式:do 语句块(循环体)while(布尔表达式); 执行过程:先执行循环体,然后判断布尔表达式的值,为true,则重复执行循环体,为false,则结束循环体。 流程图:,布尔表达式,值为真,值为假,语句块,循环部分,跳出循环,至少执行一次循环体,while(布尔表达式)语句块(循环体),66,int i=101; int sum=0; while(i=100) sum=sum+i; i=i+1; System.out.println(sum);,int i=101; int sum=0;
41、 do sum=sum+i; i=i+1; while(i=100); System.out.println(sum);,67,2.4Java语句,说明:对于while和do-while循环 1)当布尔表达式的值第一次为true时,而且语句块一样,则两者等价,即结果一样。 2)当布尔表达式的值第一次为false时,两者不等价,即while不执行循环体,而do-while执行一次循环体。 例如:当i初值为3时 1)while循环的循环体不执行,无输出结果 2)do-while循环的循环体执行一次,在屏幕上输出3,68,2.4Java语句,3)for语句 for一般形式: for(初始化表达式1;
42、条件表达式2;循环变量表达式3) 语句块(循环体) 说明: 1)初始化表达式:用于初始化变量,通常为赋值语句,如i=1; 2)条件表达式:用于控制循环,值为true则执行循环体,为false则退出循环体 3)循环变量表达式:循环变量的递增或递减表达式,如i+或i-,69,2.4Java语句,表达式2,值为真,值为假,表达式1,循环部分,循环语句,表达式3,70,2.4Java语句,执行过程: 1)首先,执行表达式1,转2) 2)执行表达式2,值为true,则执行循环体,转3);值为false,则结束for语句 3)执行表达式3,转2) 注:当条件表达式为空时,构成无限循环(即死循环)。,71,
43、2.4Java语句,例:计算1-100累加和。,int sum=0,i,j;for(i=100,j=1;j=30;j=j+1)sum=sum+i;i=i-2;,int sum=0,i;for(i=200;i=1;i=i-1)sum=sum+i;,int i=1; Int sum=0; while(i=100) sum=sum+i; i=i+1; System.out.println(sum);,72,2.4Java语句,流程图:,i=100,值为真,值为假,i=1;,循环部分,跳出循环,sum=sum+i;,i+;,int i=1; int sum=0; while(i=100) sum=su
44、m+i; i=i+1; System.out.println(sum);,int sum=0; for(int i=1;i=100;i+) sum=sum+i; ,int sum=0; for(int i=100;i=1;i-) sum=sum+i; ,73,2.4Java语句,4)嵌套循环:循环体中包含循环语句 双重循环应用实例:求110之间的素数 素数:只能被1和本身整除的数 判断方法:将该数被从2开始直到该数减1的数相除,如果不能被其中任何数整除,则该数为素数。,74,2.4Java语句,public class PrimeNumber public static void main(S
45、tring args) boolean flag; int i; for( i=1;i=10;i+) flag=true;for(int j=2;j=i-1;j+) if(i%j=0)flag=false; if(flag)System.out.print(i+” ”); ,一层for循环,两 层 for 循 环,外层for循环,内层for循环,/设置标志,/如果被其个数整除,便不是素数,/如果不能被任何数整除,是素数,75,提问:,switch语句的概念switch语句的工作原理?循环的概念?Java有哪三种循环语句?,switch语句工作原理:先计算表达式的值,将表达式的值与各个常量的值进
46、行比较,若与常量i相同,则执行语句i;若都不相同,则执行default后的语句n+1。,Java的三种循环语句是while、do-while和for语句,循环:不断重复执行同一块代码,直到不满足某种条件为止,switch语句是根据一个变量或表达式的值,提供多分支执行路径的语句,76,提问:,while和do-while循环的异同点?for语句有哪三个表达式?其执行顺序是?,执行顺序:首先执行表达式1,然后执行表达式2,值为true,则执行循环体和表达式3,再转回执行表达式2;值为false,则结束for语句,相同点:当布尔表达式的值第一次为true时,而且语句块一样,则两者等价,即结果一样。,
47、不同点:1)while循环先判断表达式的值,为真,则执行循环体2)do-while循环先执行循环体,再判断表达式的值 至少执行一次!,三个表达式:初始化表达式1;条件表达式2;循环变量表达式3,77,2.4Java语句,注意:循环语句要避免死循环,即一定要在执行了若干次循环体后,使布尔表达式的值为false,退出循环。 避免死循环的方法:在循环体中,有改变循环控制变量的语句,使其构成的布尔表达式在某一时刻的值为false!,78,2.4Java语句,3、转移语句 用于控制程序退出循环或跳过某些语句,执行其他语句。 Java的转移语句有:break语句和continue语句,79,2.4Java语句,1)break语句 用途:在循环语句中,用于跳出循环体;在switch语句,用于结束switch语句。 注:如果位于嵌套循环中,break语句用于跳出当前循环。 例:求110之间的素数public class PrimeNumber public static void main(String args) boolean flag; for(int i=1;i10;i+) flag=true; for(int j=2;ji-1;j+) if(i%j=0) flag=false;break; if(flag)System.out.print(i+” ”); ,