《面向对象程序设计-流程控制.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计-流程控制.ppt(38页珍藏版)》请在三一办公上搜索。
1、面向对象程序设计流程控制,教师:张立涓,本节课主要内容,理论:分支语句:if else;switch循环语句:for,while,do-while 实例:猜数字游戏,猜数字程序流程图,运行结果,产生随机数的方法,使用Math类的random()方法产生一个随机数,产生随机数的方法:Math类的radom()方法产生一个随机数。如:Math.random()*128;产生一个0.0128.0之间的随机数。,读取键盘输入字符,获取用户键盘输入字符的方法是使用System.in.read()方法该方法的返回值是int类型(返回的是输入数值的编码)注意:该方法只能获取单个字符,不能获取字符串。使用该方
2、法时需要在第一行加入import java.io.*;语句使用该方法时需要抛出IO异常即throws IOException,If else语句,true,false,语句1,布尔表达式,后续语句,语句2,修改程序,修改P33 GuessNum猜数字程序提示用户输入的数字是偏大或是偏小,if语句嵌套,if语句中内嵌的语句1或语句2又是if语句的情况称为if 语句的嵌套。如:if(布尔表达式1)语句1else if(布尔表达式2)语句2 else if(布尔表达式m)语句melse 语句n,判断下列程序片断的输出结果,int x=7;if(x5)if(x10)System.out.println
3、(x5,Java编译器总是将else与其最近为配对的if配对,Switch语句,switch 语句根据表达式的结果来执行多个操作中的一个,它的语法形式如下:,switch(表达式)case 常量1:语句1 break;case常量2:语句2 break;case常量n:语句n break;default:缺省处理语句 break;,练习,使用switch语句实现猜数字游戏并提示用户所输入的数字比原数字偏大或是偏小,判断下列程序片断是否正确,float a;switch(a),2.int a;switch(a)case 1:case 2:System.out.println(“ok”);,使用s
4、witch 语句时,要注意表达式必须是byte,char,short,int类型的表达式,而不能使用浮点类型或long类型,也不能为一个字符串;,知识拓展获取键盘输入字符的方法,1.获取单个字符:int num=System.in.read()2.获取多个字符(字符串)BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String str=br.readLine();,获取键盘输入字符的方法解释,/*BufferedReader是缓冲字符流类,br是该类的一个对象(实例)。使用new操作符在内存中给br分
5、配内存空间:new BufferedReader(new InputStreamReader(System.in);new InputStreamReader(System.in);这条语句将在屏幕输入的字符串放到br的内存空间中,System.in 表示屏幕输入/readLine()是br对象的一个方法,该方法按行从br的内存空间中读取字符串,修改程序,修改P33程序GuessNum,使用户可以猜(099)之间的数字,思考,上述猜数字游戏程序每次运行用户只能猜一次,我们能否实现这样的功能:游戏开始后,给用户三次猜数字的机会,若三次都猜错,则游戏结束,若在三次以内猜对,提示游戏成功,并结束本次
6、游戏,循环语句-for,使用for循环语句实现猜数字游戏,使用for循环的猜数字程序流程图,运行结果,P38 GuessNumFor【代码解释】,1System.in.read()语句用于读取屏幕输入的单个字符,用户点击回车后,系统认为读取屏幕输入结束,为了循环输入,我们使用语句:System.in.skip(2);跳过用户输入的回车符。2最后一条语句if(i=0)目的是实现:如果用户三次都没有猜中(即此时i=0),则显示“很遗憾,您未猜中”并显示出正确的数字。3其中,整数变量k用于计算剩余的猜数字次数。,练习:修改程序,使用while循环语句修改猜数字游戏while语句格式:while(布尔
7、表达式),使用do-while语句实现猜数字游戏,dowhile语句格式do while(布尔表达式),循环嵌套语句,我们通过循环语句实现了每次游戏给用户猜三次数字的机会。现在,我们对猜数字游戏的功能继续进行扩展,扩展如下功能:如果用户三次都没有猜对/已经猜对,则提示用户“是否继续玩游戏”,若用户输入“Y/y”,则重新开始游戏,若用户输入“N/n”,则结束游戏。,流程图,运行结果,【代码解释】,1.程序使用dowhile双重循环实现,其中外层循环条件是用户选择输入“Y”即继续玩游戏,内层循环的条件是i0,即用户猜三次。do/外层循环,实现重新开始游戏do/内层循环,完成猜三次数字while(i
8、0);/内层循环条件i0while(again);/外层循环条件,用户输入“y”2内层循环中添加了偏大或者偏小的判断if(guessNumtrueNum)System.out.println(很遗憾偏大了!);else System.out.println(很遗憾偏小了!);3.本程序不一定使用dowhile实现,其他循环语句也可以实现嵌套循环,比如:可以使用for循环语句来完成上述嵌套循环。,练习,使用for循环嵌套修改上述猜数字游戏,跳转语句,标号语句labelbreak语句continue语句return语句,问题,上述猜数字游戏中,若用户在游戏还没有结束时中途想退出游戏,该如何实现?使
9、用跳转语句来修改猜数字游戏,实现这样的功能:用户可以随时输入字母”n”中止游戏。,流程图,标号,标号是一个标识符,用于给某个程序块标识一个名字。其语法格式如下:label:codeBlocklabel是标号名,用标识符表示。标号名用冒号与其后面的语句块分开。如:loop1:do/内层循环,完成猜三次数字while(i0);/内层循环条件i0其中,loop1是标号,标号常和break,continue语句一起使用,使程序的流程发生跳转。,break语句,break语句的功能是中止包含break语句的程序块,其语法格式如下:breaklabel;其中,label是可选项,是标号名,continue语句,continue语句只能用在循环中,它的功能是使程序跳过循环体中的continue语句后剩下的部分,终止当前一次循环,进行下次循环。其语法格式如下:continue label,return语句,return语句的功能是从当前方法中退出,返回到调用该方法的语句处,并从下一条语句继续执行。其语法格式如下:return expression;,作业,P55 3,