欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java的结构化程序设计.ppt

    • 资源ID:80450073       资源大小:827KB        全文页数:75页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java的结构化程序设计.ppt

    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=width=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):创建一个使用默认大小输入缓冲区的缓冲字符输入流。readLine():读取缓冲区内的一个文本行,返回值为StringInputStreamReaderInputStreamReader(InputStreamin):创建一个使用默认字符集的InputStreamReader。标准输入流:S3.1 顺序结构及基本语句顺序结构及基本语句输入输入语句语句v用户输入对应的语句用户输入对应的语句importjava.io.*;publicclassInputTestpublicstaticvoidmain(Stringargs)BufferedReaderbuff;Stringstr;buff=newBufferedReader(newInputStreamReader(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.parseFloat(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 选择结构语句选择结构语句双双分支语句分支语句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 选择结构语句选择结构语句多多分支语句举例分支语句举例 输入学生成绩输入学生成绩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 选择结构语句选择结构语句多多分支语句举例分支语句举例X0错误错误X60不及格不及格及格及格FFTTX70X80X;必须为整数类型必须为整数类型或字符类型或字符类型break语句终止语句终止switch结构的执行结构的执行3.2 选择结构语句选择结构语句switch语句举例语句举例vTestSwitch.javapublicclassTestSwitchpublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderbuf;Stringstr;intgrade,level;buf=newBufferedReader(newInputStreamReader(System.in);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;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输入年份、月份和日期,判断是否为一个正确的日输入年份、月份和日期,判断是否为一个正确的日期,并求出该日期的下一天的年份、月份和日期。期,并求出该日期的下一天的年份、月份和日期。3.3 循环结构语句循环结构语句v循环:指一些操作或运算,具有:循环:指一些操作或运算,具有:重复性重复性 规律性规律性 有限次、有规律有限次、有规律、重复、重复 有限性有限性v循环的要素:循环的要素:循环的要素:循环的要素:赋初值:设置循环的初始条件赋初值:设置循环的初始条件循环体:重复做什么?循环体:重复做什么?循环变量的修改:更改循环控制状况循环变量的修改:更改循环控制状况循环(结束)条件:如何继续?循环(结束)条件:如何继续?(何时结束?)(何时结束?)3.3 循环结构语句循环结构语句for循环循环vfor语句格式语句格式 判断条件判断条件循环体循环体truefalse赋循环控制变量初值赋循环控制变量初值循环控制变量增(减)值循环控制变量增(减)值for(赋初值赋初值;判断条件判断条件;循环变量修改循环变量修改)语句块语句块3.3 循环结构语句循环结构语句for循环举例循环举例v求求3200内的所有素数内的所有素数v百钱买百鸡百钱买百鸡:“百钱买鸡问题百钱买鸡问题”出自公元前五世纪出自公元前五世纪中国数学家张丘建的中国数学家张丘建的算经算经:鸡公每只五元,:鸡公每只五元,鸡母每只三元,而鸡仔每元三只。用一百元买一鸡母每只三元,而鸡仔每元三只。用一百元买一百只鸡,鸡公、鸡母和鸡仔(百只鸡,鸡公、鸡母和鸡仔(cocks,hens,chicks)各有多少只呢?)各有多少只呢?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;k10;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*10010*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)循环变量的初值)循环变量的初值(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循环循环v数组的复制数组的复制v关于数组的常用关于数组的常用APIv数组的排序数组的排序v二维数组的声明和引用二维数组的声明和引用v二维数组的双重二维数组的双重for each循环循环3.5 数组数组v一组相同类型和名称的变量集合。数组a表示逻辑上相关的一组数据a0表示第一个元素a1表示第二个元素3.5 数组数组一维数组的声明和引用一维数组的声明和引用v数组的声明和初始化数组的声明和初始化v数组注意事项数组注意事项v数组的赋值与引用数组的赋值与引用在声明时直接赋值初始化一个匿名数组:不创建新变量采用for循环进行赋值inta;inta;inta=newint100;其中:其中:inta只是定义变量名,没有分配空间,也只是定义变量名,没有分配空间,也没有定义元素个数。语句没有定义元素个数。语句inta=newint10规定了规定了数组大小,默认值都为数组大小,默认值都为0,分配了空间。,分配了空间。Boolean型型数组初始值是数组初始值是false,char型是型是u0000,类(,类(class)数组是数组是null。(1)数组的下标为)数组的下标为099,试图访问,试图访问a100会提示会提示“arrayindexoutofbounds”访问异常。访问异常。(2)获得数组中元素的个数,使用)获得数组中元素的个数,使用a.length。(3)一旦创建数据,大小不能改变,如果需要扩)一旦创建数据,大小不能改变,如果需要扩展,使用展,使用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适用于遍历数组中的每个元素,并且循环内部不适用于遍历数组中的每个元素,并且循环内部不涉及到下标值。涉及到下标值。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=3.5 数组数组数组的复制方法数组的复制方法vSystem.arraycopy方法方法JavaSE6.0之前版本之前版本staticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src:源数组;srcPos:源数组的起始位置Dest:目标数组;destPos:目标数组起始位置length:要复制数组元素的数量从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束3.5 数组数组数组的复制方法数组的复制方法vArrays.copyOf方法方法publicstaticintcopyOf(intoriginal,intnewLength)复制指定的数组,截取或用复制指定的数组,截取或用 0 填充,以使副本具填充,以使副本具有指定的长度。对于在原数组和副本中都有效的有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将副本中有效而在原数组无效的所有索引,副本将包含包含 0。当且仅当指定长度大于原数组的长度时,。当且仅当指定长度大于原数组的长度时,这些索引存在。这些索引存在。3.5 数组数组数组的复制方法数组的复制方法vArrays.copyOfRange方法方法publicstaticintcopyOfRange(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;inta=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类的类的copyOf()方法实现对数组的复制之后的内存示意图方法实现对数组的复制之后的内存示意图23571113smallPrimes=3.5 数组数组数组的数组的APIvArrays的常用方法的常用方法staticStringtoString(typea):返回指定数组内容的字符串表示形式copyOf(typeoriginal,intnewLength):复制指定的数组,使副本具有指定长度copyOfRange(typeoriginal,intstart,intend):复制指定的数组,使副本具有指定长度end-startstaticvoidsort(typea)staticvoidbinarySearch(typea,typev)staticvoidbinarySearch(typea,intstart,intend,typev)staticvoidfill(typea,typev)staticbooleanequals(typea,typeb)3.5 数组数组数组的排序数组的排序vArrays.sort方法对数值型数组进行排序方法对数值型数组进行排序vpublicstaticvoidsort(inta)对指定的对指定的 int 型数组按数字升序进行排序。该型数组按数字升序进行排序。该排序算法是一个经过调优的快速排序法,改编排序算法是一个经过调优的快速排序法,改编自自 Jon L.Bentley 和和 M.Douglas McIlroy 合合著的著的 Engineering a Sort Function,Software-Practice and Experience Vol.23(11)P.1249-1265(November 1993)。此算。此算法在许多数据集上提供法在许多数据集上提供 n*log(n)性能,这导致性能,这导致其他快速排序会降低二次型性能。其他快速排序会降低二次型性能。参数参数a:要排序的数组要排序的数组3.5 数组数组数组的排序数组的排序vArrays.sort方法对数值型数组进行排序方法对数值型数组进行排序vpublicstaticvoidsort(inta,intfromIndex,inttoIndex)对指定对指定 int 型数组的指定范围按数字升序进行型数组的指定范围按数字升序进行排序。排序的范围从索引排序。排序的范围从索引 fromIndex(包括)(包括)一直到索引一直到索引 toIndex(不包括)。(不包括)。参数:参数:a-要排序的数组要排序的数组 fromIndex-要排序的第一个元素的索引(包括)要排序的第一个元素的索引(包括)toIndex-要排序的最后一个元素的索引(不包括)要排序的最后一个元素的索引(不包括)3.5 二维数组的声明及引用二维数组的声明及引用v二维数组的声明和初始化二维数组的声明和初始化TypearrayName=newtype行元素个数行元素个数列元素个数列元素个数;inttwoDimArray1=newint56;inttwoDimArray2=16,3,2,13,5,10,11,8,9,6,7,12;v二维数组的访问二维数组的访问arrayNameij双重双重for循环进行数组元素的访问循环进行数组元素的访问foreachfor(introw:twoDimArrays)for(intelement:row)System.out.println(element);3.5 二维数组的维数二维数组的维数v从最高维起分别为每一维分配内存从最高维起分别为每一维分配内存inttwoDimAarry=newint5for(inti=0;i=4;i+)twoDimArrayi=newinti0,01,0 1,12,0 2,13,0 3,1 3,2 3,32,24,0 4,1 4,2 4,3 4,4inttwoDimAarry=newint5;for(inti=0;i=4;i+)twoDimArrayi=newinti+1;3.6 字符串字符串vJava.lang.String类类v字符串对象创建的四种方法字符串对象创建的四种方法v字符串对象创建的原理字符串对象创建的原理vString类的常用方法类的常用方法vString类的缺陷类的缺陷vJava.lang.StringBuffer类及常用的一些方法类及常用的一些方法vJava.lang.StringBuilder类及常用的一些方法类及常用的一些方法3.6 字符串字符串Java.lang.String类类vString类是类是final的,不可被继承。的,不可被继承。publicfinalclassString;vString类是的本质是字符数组类是的本质是字符数组char,并且其值不并且其值不可改变。可改变。privatefinalcharvalue;vString类对象有个特殊的创建的方式,直接指定类对象有个特殊的创建的方式,直接指定Stringx=abc,abc就表示一个字符串对象。而就表示一个字符串对象。而x是是abc对象的地址,也叫做对象的地址,也叫做abc对象的引用。对象的引用。vString对象可以通过对象可以通过“+”串联。串联后会生成新串联。串联后会生成新的字符串。也可以通过的字符串。也可以通过concat()来串联。来串联。3.6 字符串字符串Java.lang.String类类vString类对象的不可改变性类对象的不可改变性string类型对象是不可改变,也就是说,当你想改变一个类型对象是不可改变,也就是说,当你想改变一个string对象的时候,比如对象的时候,比如:name=“madding”,那么虚拟机不会改变原,那么虚拟机不会改变原来的对象,而是生成一个新的来的对象,而是生成一个新的string对象,然后让对象,然后让name去指向去指向它,如果原来的那个它,如果原来的那个“tom”没有任何对象去引用它,虚拟机的没有任何对象去引用它,虚拟机的垃圾回收机制将接收它。垃圾回收机制将接收它。3.6 字符串字符串字符串对象创建的四种方法字符串对象创建的四种方法v直接指定。直接指定。Strings2=abc;v使用串联生成新的字符串。使用串联生成新的字符串。Strings3=ab+c;v使用使用new关键字创建字符串关键字创建字符串Strings1=newString(abc);v由字符数组创建字符串由字符数组创建字符串charch=H,e,l,l,o;Strings2=newString(ch);3.6 字符串字符串String对象的创建原理(对象的创建原理(1)vString类对象的不可改变性类对象的不可改变性Strings1=“Hello”;s1=“GoodAfternoon”;String池池HelloGoodAfternoon栈栈3.6 字符串字符串String对象的创建原理(对象的创建原理(1)v直接指定直接指定String对象和串接字符串时,内存示意图对象和串接字符串时,内存示意图Stringa=”abc”;Stringb=”abc”;Stringc=”ab”+”c”;String池池abc栈栈abcabca=b测试两个引用测试两个引用是否指向同一个是否指向同一个对象对象(StringTest)3.6 字符串字符串String对象的创建原理(对象的创建原理(2)v使用使用new关键字创建字符串时,内存示意图关键字创建字符串时,内存示意图Strings1=“abc”;String池池abc栈栈s1堆堆String池池abc堆堆String池池abc堆堆String池池abc堆堆栈栈String池池abc堆堆s1栈栈String池池abc堆堆s1栈栈String池池abc堆堆3.6 字符串字符串String对象的创建原理(对象的创建原理(2)v使用使用new关键字创建字符串时,内存示意图关键字创建字符串时,内存示意图Strings1=“abc”;Strings2=newString(“abc”);String池池abc栈栈s1堆堆String(“abc”)s2String池池abc堆堆String池池abc堆堆String池池abc堆堆栈栈String池池abc堆堆s1栈栈String池池abc堆堆s1栈栈String池池abc堆堆String(“abc”)s2s2String(“abc”)3.6 字符串字符串String对象的创建原理(对象的创建原理(2)Strings1=abc;Strings2=newString(abc);Strings3=newString(abc);Strings4=ab+c;Strings5=c;Strings6=ab+s5;System.out.print(s1=s2:);System.out.println(s1=s2);System.out.print(s2=s3:);System.out.println(s2=s3);System.out.print(s1=s4:);System.out.println(s1=s4);System.out.print(s1=s6:);System.out.println(s1=s6);s1=s2:falses2=s3:falses1=s4:trues1=s6:3.6 字符串字符串String类的常用方法类的常用方法vint length()int length()返回当前字符串中的字符个数。vboolean equals(String str)boolean equals(String str)区分大小写比较两个字符串的内容是否相等。vboolean equalsIgnoreCase(String str)boolean equalsIgnoreCase(String str)不区分大小写比较两个字符串的内容是否相等。vchar charAt(int index)char charAt(int index)返回当前字符串中index处位置的字符。vString toLowerCase()String toLowerCase()将当前字符串中所有字符转换为小写形式。vString toUpperCase()String toUpperCase()将当前字符串中所有字符转换为大写形式3.6 字符串字符串String类的常用方法类的常用方法vString substring(int BIndex)截取当前字符串中从BIndex开始到末尾的子串。vboolean startsWith(String str)测试当前字符串是否以str字符串为开头。vchar replace(char c1,char c2)将当前字符串中的c1字符转换为c2字符。vString trim()返回去掉了当前字符串前后空格的字符串。vint indexOf(String str,int i)在当前的字符串中从i处查找str子串,若找到,返回子 串第一次出现的位置,否则返回-1。3.6 字符串字符串String类的缺陷类的缺陷v串接字符串时,内存示意图串接字符串时,内存示意图Stringc=”ab”+”c”;String池池abc栈栈3.6 字符串字符串String类的缺陷类的缺陷vString使用的缺陷:使用的缺陷:String一经初始化后,就不会一经初始化后,就不会在改变其内容了。对在改变其内容了。对String字符串的操作实际上对字符串的操作实际上对其副本(原始拷贝)的操作,原来的字符串没有其副本(原始拷贝)的操作,原来的字符串没有改变。比如:改变。比如:strings=a;/创建了一个字符串s=s+“b”;/实际上原来的“a”字符串对象已经丢弃了,现在又产生了一个字符串s+“b”(也就是“ab”)。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。3.6 字符串字符串StringBuffer类及常用方法类及常用方法vStringBufferappend(charc)将字符c放到字符串缓冲区之后vStringBufferappend(Stringstr)将字符串str放到字符串缓冲区之后vStringBufferdeleteCharAt(intindex)删除字符串缓冲区中第index位置的字符vStringBufferinsert(intk,charc)在字符串缓冲区的第k个位置插入字符cvStringBufferinsert(intk,Stringstr)在字符串缓冲区的第k个位置插入字符串strvStringBufferreplace(intm,intn,Stringstr)将字符串缓冲区中第m到n之间以字符串str取代vStringBufferreverse()将字符串缓冲区中的字符串按反向排列3.6 字符串字符串StringBuffer类及常用方法类及常用方法publicclassSbufferTestpublicstaticvoidmain(Stringargs)StringBufferstr=newStringBuffer(Sun&Moon);System.out.println(length=+str.length();System.out.println(str.replace(6,10,Star);System.out.println(str.reverse();System.out.println(str);length=10Sun&StarratS&nuSratS&nuS3.7 方法方法v方法的定义及调用方法的定义及调用v参数的传递参数的传递变量和常数作为参数的传递调用数组作为参数的传递v方法的嵌套调用方法的嵌套调用v方法的递归调用方法的递归调用3.7 方法方法引子引子v引例引例(1)求求m!(2)求求n!(3)求求(m-n)!(4)求求m!/(n!*(m-n)!)inti,m;longresult=1L;for(i=1;i=m;i+)result=result*i;3.7 方法方法引子引子v方法方法在程序设计中,往往将应用按功能或其他目的划分为若干个模块。这些模块,都是可重复使用的、独立的。v优点优点将复杂问题简单化将复杂问题简单化便于代码的调试与维护便于代码的调试与维护 提高代码的可读性和利用率提高代码的可读性和利用率3.7 方法方法方法的定义及调用方法的定义及调用v方法定义方法定义public|private|protectedstatic|final|native|synchronizedvoid|int|char|long|stringmethodName(参数列表参数列表)/方法主体;方法主体;v方法的调用语句方法的调用语句是否为静态方法:静态方法通过类名.方法名(实参列表)调用,否则通过对象名.方法名(实参列表)调用。是否有返回值:有返回值,方法调用只能作为语句的一部分;无返回值,方法调用可以直接作为语句3.7 方法方法变量和常数作为变量和常数作为参数的传递参数的传递v变量和常数作为参数的传递变量和常数作为参数的传递v例:定义一个求阶乘的方法例:定义一个求阶乘的方法factor公用public静态static返回long型结果long形参:整型变量intnpublicstaticlongfactor(intn)/方法体3.7 方法方法变量和常数作为变量和常数作为参数的传递参数的传递v例:定义一个求阶乘的方法例:定义一个求阶乘的方法factorpublicclassComputeFactorpublicstaticvoidmain(Stringargs)inta=5;System.out.println(ComputeFactor.factor(a);System.out.println(factor(6);publicstaticlongfactor(intn)longresult=1L;for(inti=1;i=n;i+);result=result*i;returnresult;3.7 方法方法数组数组作为作为参数的传递参数的传递v定义定义maxs()方法,接收一维数组,输出元素的最大值。在方法,接收一维数组,输出元素的最大值。在main()方法中调用方法中调用max方法,求一组学生成绩的最高分。方法,求一组学生成绩的最高分。publicclassArrPartpublicstaticvoidmain(Stringarg)intscore=65,35,98,86,77,60;maxs(score);publicstaticvoidmaxs(intsarr)/一维数组的接收一维数组的接收inttt=sarr0;for(inti=0;isarr.length;i+)if(ttsarri)tt=sarri;System.out.println(Thebestscoreis+tt+!);数组名数组名类型必须与实参一致类型必须与实参一致元素个数不能写元素个数不能写3.7 方法方法数组数组作为作为参数的传递参数的传递v定义定义maxs()方法,接收一维数组,输出元素的最大值。在方法,接收一维数组,输出元素的最大值。在main()方法中调用方法中调用max方法,求一组学生成绩的最高分。方法,求一组学生成绩的最高分。publicclassArrPartpublicstaticvoidmain(Stringarg)intscore=65,35,98,86,77,60;maxs(score);publicstaticvoidmaxs(intsarr)/一维数组的接收一维数组的接收inttt=sarr0;for(inti=0;isarr.length;i+)if(3.7 方法方法方法的递归调用方法的递归调用importjava.io.*;publicclassFactorpublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderbuff;Stringstr;intnum;buff=newBufferedReader(newInputStreamReader(System.in);str=buff.readLine();num=Integer.parseInt(str);System.out.println(fact(num);publicstaticintfact(intn)if(n=1)return1;elsereturnn*fact(n-1);3.7 方法方法方法的递归调用方法的递归调用fac(4)=4*fac(3)fac(3)=3*fac(2)fac(2)=2*1fac(2)=2*fac(1)fac(1)=1fac(3)=3*2fac(4)=4*6fac(4)的执

    注意事项

    本文(Java的结构化程序设计.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开