Java的结构化程序设计.ppt





《Java的结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《Java的结构化程序设计.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、WHUT第第3章章 Java的结构化程序设计的结构化程序设计主主讲:肖讲:肖敏敏电电话:话:13886110754E-mail:第第3章章 Java的结构化程序设计的结构化程序设计顺序结构及基本语句顺序结构及基本语句3.13.2选择结构语句选择结构语句3.3循环结构语句循环结构语句3.4转移语句转移语句数组数组3.53.6字符串字符串3.7方法方法3.1 顺序结构及基本语句顺序结构及基本语句赋值语句赋值语句v赋值运算符赋值运算符 =,+=,-=,*=,/=,%=v赋值表达式赋值表达式 变量名变量名=表达式表达式 变量名变量名+=表达式表达式intwidth;width=3;length=wid
2、th=3;v交换两个数值型变量的值交换两个数值型变量的值设置临时变量交换不能用临时变量交换ninta,b,temp;ntemp=a;na=b;nb=temp;a=a+bb=a-ba=a-3.1 顺序结构及基本语句顺序结构及基本语句赋值语句赋值语句mnabnaba=a+bmm+nm+nabb=a-bn mmaba=a-bm+3.1 顺序结构及基本语句顺序结构及基本语句输入输入语句语句v用户输入用户输入APIBufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。BufferedReader(Readerin):创建一个使用默认大小输入缓冲区的缓冲字符
3、输入流。readLine():读取缓冲区内的一个文本行,返回值为StringInputStreamReaderInputStreamReader(InputStreamin):创建一个使用默认字符集的InputStreamReader。标准输入流:S3.1 顺序结构及基本语句顺序结构及基本语句输入输入语句语句v用户输入对应的语句用户输入对应的语句importjava.io.*;publicclassInputTestpublicstaticvoidmain(Stringargs)BufferedReaderbuff;Stringstr;buff=newBufferedReader(newInp
4、utStreamReader(System.in);str=buff.readLine();3.1 顺序结构及基本语句顺序结构及基本语句输入输入语句语句v将将String类型转换为数值类型类型转换为数值类型包装器类包装器类转换的方法转换的方法LongLong.parseLong(Stringstr)IntInteger.parseInteger(Stringstr)ShortShort.parseShort(Stringstr)ByteByte.parseByte(Stringstr)DoubleDouble.parseDouble(Stringstr)FloatFloat.parseFloa
5、t(Stringstr)importjava.io.*;publicclassInputTestpublicstaticvoidmain(Stringargs)BufferedReaderbuff;Stringstr;inta;buff=newBufferedReader(newInputStreamReader(System.in);str=buff.readLine();a=Integer.parseInteger(str);3.2 选择结构语句选择结构语句单分支语句单分支语句v语句格式语句格式条件条件语句块语句块F T 执行过程执行过程执行过程执行过程if 语句块语句块3.2 选择结构语
6、句选择结构语句双双分支语句分支语句v语句格式语句格式条条 件件 语句块语句块1语句块语句块2 TF 执行过程:执行过程:执行过程:执行过程:if (表达式表达式)语句块语句块1;else 语句块语句块2;3.2 选择结构语句选择结构语句多多分支语句分支语句条件条件1 语句块语句块1条件条件2条件条件n 语句语句2语句块语句块n 语句块语句块n+1TTTF F F 执行过程执行过程执行过程执行过程if(表达式表达式1)语句块语句块1;elseif(表达式表达式2)语句块语句块2;else语句块语句块n+1;vif-elseif语句格式语句格式:3.2 选择结构语句选择结构语句多多分支语句举例分支
7、语句举例 输入学生成绩输入学生成绩dblGrade,评定其等级。成绩在,评定其等级。成绩在90,100之间为之间为“优秀优秀”,80,90)为为“良好良好”,70,80)为为“中等中等”,60,70)为为“及格及格”,0,60)为为“不及格不及格”,小于,小于0为输入错误。为输入错误。3.2 选择结构语句选择结构语句多多分支语句举例分支语句举例X=90优秀优秀X=80良好良好中等中等FFTTX=70X=60X=0及格及格不及格不及格错误错误FFFTTT(1)读取输入的学生成绩)读取输入的学生成绩(2)将其类型转换为)将其类型转换为float型型3.2 选择结构语句选择结构语句多多分支语句举例分
8、支语句举例X0错误错误X60不及格不及格及格及格FFTTX70X80X;必须为整数类型必须为整数类型或字符类型或字符类型break语句终止语句终止switch结构的执行结构的执行3.2 选择结构语句选择结构语句switch语句举例语句举例vTestSwitch.javapublicclassTestSwitchpublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderbuf;Stringstr;intgrade,level;buf=newBufferedReader(newInputStreamReader(System.in
9、);str=buf.readLine();grade=Integer.parseInt(str);level=grade/10;3.2 选择结构语句选择结构语句switch语句举例语句举例switch(level)case1:case2:case3:case4:case5:System.out.println(E);break;case6:System.out.println(D);break;case7:System.out.println(C);break;case8:System.out.println(B);break;case9:System.out.println(A);break
10、;3.2 选择结构语句选择结构语句选择结构的嵌套选择结构的嵌套 if if else else if else if switch(表达式表达式)case If Else case else 3.2 选择结构语句选择结构语句练习练习v输入三个数值,判断能否构成三角形。如果能,判输入三个数值,判断能否构成三角形。如果能,判断三角形的形状。断三角形的形状。v输入三个值输入三个值a,b,c,求二次型方程,求二次型方程ax2+bx+c=0的解的解v输入年份、月份和日期,判断是否为一个正确的日输入年份、月份和日期,判断是否为一个正确的日期,并求出该日期的下一天的年份、月份和日期。期,并求出该日期的下一天
11、的年份、月份和日期。3.3 循环结构语句循环结构语句v循环:指一些操作或运算,具有:循环:指一些操作或运算,具有:重复性重复性 规律性规律性 有限次、有规律有限次、有规律、重复、重复 有限性有限性v循环的要素:循环的要素:循环的要素:循环的要素:赋初值:设置循环的初始条件赋初值:设置循环的初始条件循环体:重复做什么?循环体:重复做什么?循环变量的修改:更改循环控制状况循环变量的修改:更改循环控制状况循环(结束)条件:如何继续?循环(结束)条件:如何继续?(何时结束?)(何时结束?)3.3 循环结构语句循环结构语句for循环循环vfor语句格式语句格式 判断条件判断条件循环体循环体truefal
12、se赋循环控制变量初值赋循环控制变量初值循环控制变量增(减)值循环控制变量增(减)值for(赋初值赋初值;判断条件判断条件;循环变量修改循环变量修改)语句块语句块3.3 循环结构语句循环结构语句for循环举例循环举例v求求3200内的所有素数内的所有素数v百钱买百鸡百钱买百鸡:“百钱买鸡问题百钱买鸡问题”出自公元前五世纪出自公元前五世纪中国数学家张丘建的中国数学家张丘建的算经算经:鸡公每只五元,:鸡公每只五元,鸡母每只三元,而鸡仔每元三只。用一百元买一鸡母每只三元,而鸡仔每元三只。用一百元买一百只鸡,鸡公、鸡母和鸡仔(百只鸡,鸡公、鸡母和鸡仔(cocks,hens,chicks)各有多少只呢?
13、)各有多少只呢?x,y,z分别表示鸡公、鸡母和鸡仔x+y+z=1005*x+3*y+z/3=3.3 循环结构语句循环结构语句for循环练习循环练习v所有数字之和为所有数字之和为5的三位数有多少个?的三位数有多少个?v某次考试共某次考试共26个题,对一道得个题,对一道得8分,错一道扣分,错一道扣5分,分,小张做完全部题目却得了零分,问他答对、错的小张做完全部题目却得了零分,问他答对、错的共多少?共多少?v填数游戏:填数游戏:3.3 循环结构语句循环结构语句for循环举例循环举例vJava代码代码for(inti=0;i1000;i+)for(intj=0;j100;j+)for(intk=0;k
14、10;k+)function(i*j*k);变量变量实例化实例化初始化初始化比较次数比较次数自增次数自增次数i1110001000j100010001000*1001000*100k1000*1001000*1001000*100*101000*100*3.3 循环结构语句循环结构语句for循环举例循环举例vJava代码代码for(inti=0;i10;i+)for(intj=0;j100;j+)for(intk=0;k1000;k+)function(i*j*k);变量变量实例化实例化初始化初始化比较次数比较次数自增次数自增次数i111010j101010*10010*100k10*1001
15、0*10010*100*100010*100*3.3 循环结构语句循环结构语句for循环举例循环举例vJava代码代码inti,j,k;for(i=0;i10;i+)for(j=0;j100;j+)for(k=0;k10 1+1/2+1/3+1/n10vwhilewhile循环循环intn=0;floatsum=0;while(sum0);后,后,c的值是(的值是()A0B1C-1D死循环死循环3.3 循环语句循环语句v循环总结循环总结已知循环次数已知循环次数 for循环循环 while 先判断先判断循环次数未知循环次数未知 do 循环循环 do while 先循环先循环 (1)循环变量的初值
16、)循环变量的初值(2)循环体)循环体(3)循环结束条件)循环结束条件1.求素数求素数2.求水仙花数求水仙花数3.百钱买百鸡百钱买百鸡4.打印九九乘法表等打印九九乘法表等3.4 跳转语句跳转语句vbreak和和continue在循环语句中的区别在循环语句中的区别vbreak可以用在可以用在switch语句中,表示退出语句中,表示退出switchvbreak和和switch可以加标签使用,相当于可以加标签使用,相当于goto语句语句for(.).continue/break;.System.out.prinln(a);3.5 数组数组v数组的声明和引用数组的声明和引用v数组的数组的for each
17、循环循环v数组的复制数组的复制v关于数组的常用关于数组的常用APIv数组的排序数组的排序v二维数组的声明和引用二维数组的声明和引用v二维数组的双重二维数组的双重for each循环循环3.5 数组数组v一组相同类型和名称的变量集合。数组a表示逻辑上相关的一组数据a0表示第一个元素a1表示第二个元素3.5 数组数组一维数组的声明和引用一维数组的声明和引用v数组的声明和初始化数组的声明和初始化v数组注意事项数组注意事项v数组的赋值与引用数组的赋值与引用在声明时直接赋值初始化一个匿名数组:不创建新变量采用for循环进行赋值inta;inta;inta=newint100;其中:其中:inta只是定义
18、变量名,没有分配空间,也只是定义变量名,没有分配空间,也没有定义元素个数。语句没有定义元素个数。语句inta=newint10规定了规定了数组大小,默认值都为数组大小,默认值都为0,分配了空间。,分配了空间。Boolean型型数组初始值是数组初始值是false,char型是型是u0000,类(,类(class)数组是数组是null。(1)数组的下标为)数组的下标为099,试图访问,试图访问a100会提示会提示“arrayindexoutofbounds”访问异常。访问异常。(2)获得数组中元素的个数,使用)获得数组中元素的个数,使用a.length。(3)一旦创建数据,大小不能改变,如果需要扩
19、)一旦创建数据,大小不能改变,如果需要扩展,使用展,使用arraylist。typearrayName=value1,values2,valuesn;intsmallPrimes=2,3,5,7,11,13;newtypevalue1,values2,valuesn;newint2,3,5,7,11,13;inta=newint100;for(inti=0;ia.length;i+)ai=2*i+1;System.out.println(ai);3.5 数组数组数组的数组的foreach循环循环vforeach循环语句格式循环语句格式for(variable:collection)v适用于遍历
20、数组中的每个元素,并且循环内部不适用于遍历数组中的每个元素,并且循环内部不涉及到下标值。涉及到下标值。inta=newint100;for(inti=0;ia.length;i+)ai=2*i+1;System.out.println(ai);inta=newint100;for(intelement:a)System.out.println(element)3.5 数组数组数组的复制数组的复制v数组的复制数组的复制intsmallPrimes=2,3,5,7,11,13;intluckyNumbers=smallPrimes;23571113smallPrimes=luckyNumbers=
21、3.5 数组数组数组的复制方法数组的复制方法vSystem.arraycopy方法方法JavaSE6.0之前版本之前版本staticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src:源数组;srcPos:源数组的起始位置Dest:目标数组;destPos:目标数组起始位置length:要复制数组元素的数量从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束3.5 数组数组数组的复制方法数组的复制方法vArrays.copyOf方法方法publicstaticintcopyOf(int
22、original,intnewLength)复制指定的数组,截取或用复制指定的数组,截取或用 0 填充,以使副本具填充,以使副本具有指定的长度。对于在原数组和副本中都有效的有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将副本中有效而在原数组无效的所有索引,副本将包含包含 0。当且仅当指定长度大于原数组的长度时,。当且仅当指定长度大于原数组的长度时,这些索引存在。这些索引存在。3.5 数组数组数组的复制方法数组的复制方法vArrays.copyOfRange方法方法public
23、staticintcopyOfRange(intoriginal,intstart,intend)从数组从数组original的的start开始开始复制指定的数组,使复制指定的数组,使副本具有指定长度副本具有指定长度end-3.5 数组数组数组的复制数组的复制v使用使用Systems的的arraycopy()方法方法:JavaSE6.0之前版本之前版本System.arraycopy(from,fromIndex,to,toIndex,count)指定原数组名称、以及元素的开始位置、复制的元素的个数,目标数组名称、目标数组的位置。intsmallPrimes=2,3,5,7,11,13;int
24、a=newint6;System.arraycopy(smallPrimes,0,a,0,6);vArrarys类的类的copyOf()方法实现对数组的复制方法实现对数组的复制Arrays.copyOf(from,length)intsmallPrimes=2,3,5,7,11,13;inta=newint6;a=Arrays.copyOf(smallPrimes,smallPrimes.length);a=Arrays.copyOf(smallPrimes,3);3.5 数组数组数组的复制数组的复制v使用使用Systems的的arraycopy()方法和方法和Arrarys类的类的copyO
25、f()方法实现对数组的复制之后的内存示意图方法实现对数组的复制之后的内存示意图23571113smallPrimes=3.5 数组数组数组的数组的APIvArrays的常用方法的常用方法staticStringtoString(typea):返回指定数组内容的字符串表示形式copyOf(typeoriginal,intnewLength):复制指定的数组,使副本具有指定长度copyOfRange(typeoriginal,intstart,intend):复制指定的数组,使副本具有指定长度end-startstaticvoidsort(typea)staticvoidbinarySearch(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 结构 程序设计

限制150内