收藏 分销(赏)

《Java程序设计案例教程》教学课件03Java流程控制.pdf

上传人:曲**** 文档编号:225508 上传时间:2023-03-08 格式:PDF 页数:43 大小:1.41MB
下载 相关 举报
《Java程序设计案例教程》教学课件03Java流程控制.pdf_第1页
第1页 / 共43页
《Java程序设计案例教程》教学课件03Java流程控制.pdf_第2页
第2页 / 共43页
《Java程序设计案例教程》教学课件03Java流程控制.pdf_第3页
第3页 / 共43页
《Java程序设计案例教程》教学课件03Java流程控制.pdf_第4页
第4页 / 共43页
《Java程序设计案例教程》教学课件03Java流程控制.pdf_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、模块3 Java流程控制r了解语句、语句块和作用域的概念。掌握分支控制结构if-else和switch的使用。掌握循环控制结构while、do-while和for的使用。掌握转移控制语句break、continue和return的使用。技能目标能够在MyEclipse IDE中用分支控制结构if-else和switch编写程序。01能够在MyEclipse IDE中用分支控制结构if-else和switch编写程序。02能够在程序设计中使用转移控制语句break、continue和return。033回顾与思考0113-1编写程序获取用户输入的年份,判断该年是否为闰年。文件名为Example3

2、_l.java,其代码如下。import java.util.Scanner;public class Example3_l/*例3-1判断是否为闰年*authorJava程序设计案例教程*vers ion 1.0*/public static void main(String口 args)String s;Scanner sc=new Scanner(System,in);int year;doSystem.out.print(”请输入年份:”);year=sc.nextlnt();if(year%4=0&year%100!=0|yearSystem.out.println(year+”是

3、闰年。;elseSystem.out.println(year+”不 是闰年。”);System.out.print(是否继续判断下一个年份(y/n)s=sc.next();while(s.equalsIgnoreCase(y);System.out.printin(程序结束,谢谢使用!”);3回顾与思考0113-1运行结果如图3-1所示。代码中出现的if-else 语句块属于分支结构,do while语句块属于循环 结构。接下来在了解Java 语句、语句块和作用域的 基础上详细分析分支结构 和循环结构。日 Console 区-X 一|凰砧唱腔“里 d=占 example?Java Appli

4、cation C:UsersDELLAppDataLocalGenuitecCommonbinarycom.sunjavaJ(请输入年份:20192019不是闰年。是否继续判断下一个年份(y/n):y请输入年份:20202020是闰年。是否继续判断下一个年份(y/n):n 程序结束,谢谢使用!j图3-1【例3-1的运行结果3.2语句.语句块和作用域阅读Example3_l.java的代码,可以发现一段完整的Java程序由若干条 语句组成,每条语句都是一个完整的执行单元,以分号结束。语句块由一对大括号和其中的语句组成,语句块中的语句可以为一行、多行或另一个语句块,也可以一行也没有,称为空语句块。

5、例如,Example3_l.java中的do-while语句块。语句块中的语句仅为一行或仅包 含另一个语句块时,大括号可以省略。例如,Example3_Ljava中的if-else语句块。3.3分支控制结构3.3.1 if-else 结构1.标准形式语句格式如下:if(表达式)语句块1;else语句块2;块1的代码,并跳过语句块2的代码;如果表达式的值为false,就执行语句块2的代 m 心小五Mi/4m3.3分支控制结构3.3.1 ifelse 结构文件名为Example3_2.java,其代码如下。L标准形式【例31】判断 用户输入的成绩,如果为60分或60分 以上,就输出成 绩及格,否则

6、输 出成绩不及格。import java.util.Scanner;public class Example3_2/*例3-2 if-else标准形式*authorJava程序设计案例教程*version 1.0*/public static void main(String口 args)Scanner sc=new Scanner(System,in);System.out.print(”请输入成绩:”);double score=sc.nextDouble();if(score=60)System,out.printin(成绩及格”);elseSystem,out.printin(成绩不及

7、格”);3.3分支控制结构3.3.1 ifelse 结构L标准形式【例3-1】输出结果:请输入成绩:85 成绩及格3.3分支控制结构_3.3.1 ifelse 结构 2.悬垂形式 语句格式如下:if(表达式)语句块L这种形式是把标准形式中的else语句块去掉。如果表达式的值为true,就执行if语句块的代码;反之,则跳过这段代码。3.3分支控制结构_3.3.1 ifelse 结构 2.悬垂形式【例33】判断用户输入的成绩,如果为60分或60分以上,就输出考试通过。import java.util.Scanner;public static void main(StringC args)publ

8、ic class Example3_3/*例3-3 if-else悬垂形式*author Java程序设计案例教程*vers ion 1.0Scanner sc=new Scanner(System,in)System.out.print(”请输入成绩:”);double score=sc.nextDouble();if(score=60)System.out.println(考试通过);输出结果:请输入成绩:65 考试通过*3.3分支控制结构_3.3.1 ifelse 结构3.多分支形式语句格式如下:if(表达式1)语句块Lelse if(表达式2)语句块2;else语句块3;当存在多个条件

9、判断时,需要使用多分支形式处 理。如果表达式1的值为true,就执行语句块1,并 跳过其后所有语句块;反之,计算表达式2的值。如 果表达式2的值为true,就执行语句块2,并跳过语 句块3;反之,则执行语句块3。多分支形式中的 else if语句块可以有多个。最后的else语句块是可选 项,可根据实际需要进行取舍。3.3分支控制结构_3.3.1 ifelse 结构3.多分支形式【例34】将百分制成绩换算为等级制成绩。文件名为Example3_4.java,其代码如下。import java.util.Scanner;public class Example3_4/*例3-4 if-else多分

10、支形式*authorJava程序设计案例教程*vers ion 1.0*/Scanner sc=new Scanner(Sys tan.in)System.out.print(”请输入成绩:”);double score=sc.nextDouble();if(score=90)System.out.printin(优秀”);else if(score=80)Systen.out.printin(良 好);else if(score=70)System.out.printin(中等”);else if(score=60)System.out.println(;elseSystem.out.pri

11、ntln(不及格);public static void ma in(String口 args)3.3分支控制结构_3.3.1 ifelse 结构3.多分支形式【例34】将百分制成绩换算为等级制成绩。输出结果:代少请输入成绩:75 中等3.3分支控制结构_3.3.2嵌套if-else结构嵌套if-else结构是指可以在if语句块和else语句块中插入if-else语句。语句格式如下。else 迁(表达式)迁(表达式)任(表达式”语句块3;语句块1;elseelse语句块4;语句块2;其中,插入的if-else语句可以是上述3种形式的 任何一种。由此,如果else的数量与if的数量不匹 配,则e

12、lse与最靠近它的尚未匹配的if配对。【例3-4】中的程序运行 时,如果输入的成绩超过了 100分或低于。分,可以增加 一层判断,避免发生上述情 况。3.3分支控制结构_3.3.2嵌套ifelse结构【例35】将百分制成绩换算为等级制成绩的改进。文件名为Example3_5.java,其代码如下。import java.util.Scanner;public class Example3_5/*例3-5嵌套if-else结构*authorJava程序设计案例教程*vers ion 1.0*/Scanner sc=new Scanner(System,in);System.out.print(”

13、请输入成绩:”);double score=sc.nextDouble();if(score V=100&score=0)if(score=90)System.out.printin(优 秀”);else if(score=80)System.out.printin(良 好);else if(score=70)else if(score=60)System.out.printin(及格);elseSystem.out.printin(不 及格);else,public static void main(String args)System.out.printin(中 等”);3.3分支控制结构

14、_3.3.3 switch结构switch结构作为多分支if-else结构的替代,使得程序代码变得简洁易读。switch结构格式 如下。switch(表达式)case常量1:case常量n:语句块1;语句块n;break;break;case 常量 2:default:语句块2;语句块n+1;break;)3.3分支控制结构3.3.3 switch结构switch结构的执行流程为:计算出switch后面圆括号中表达式的值并与各case分 支的常量值进行比较。如果匹配,则执行该case分支的语 句序列。如果所有case分支都不匹配,则执行最后的 default语句块。3.3分支控制结构_3.3.

15、3 switch结构【例36】用switch结构编写程序,将百分制成绩换算为等级制成绩。文件名为Example3_6.java,其代码如下。*/import java.util.Scanner;public class Example3_6/*例 3-6 switch 结构*authorJava程序设计案例教程*version 1.0public static void main(String args)Scanner sc=new Scanner(System,in);System.out.print(”请输入成绩:”);double score=sc.nextDouble();if(sco

16、re V=100&score=0)int newScore=(int)score;switch(newScore/10)case 10:case 9:3.3分支控制结构_3.3.3 switch结构0113-6用switch结构编写程序,将百分制成绩换算为等级制成绩。文件名为Example3_6.java,其代码如下。System.out.printin(优 秀”);break;case 8:System.out.printin(良好”);break;case 7:System.out.printin(中等”);break;case 6:System.out.printin(及 格);case

17、 5:case 4:case 3:case 2:case 1:case 0:System.out.printin(不及格”);break;)3.4循环控制结构3.4.1 while 结构while结构的语句格式如下。while(表达式)循环体while结构的执行流程为:先计算表达式的值,如果为true,就执行循环体内 的语句;如果为false,就跳过循环体执行循环结构后面的语句。每进行下一次循 环前,要重新计算表达式的值,直到表达式的值为false为止。在循环体内必须存 在一个控制循环执行有限次数而能终止的循环变量。3.4循环控制结构_3.4.1 while 结构【例37】用while结构编写

18、程序,计算从1累加到100的整数和。)文件名为Example3_7.java,public class Example3_7/*例3-7 while结构*authorJava程序设计案例教程*vers ion 1.0*/,其代码如下。public static void main(String args)int sum=0;存放累加和int i=1;循环变量whiled C=100)sum+=i;i+;System.out.printin(从 1 累加到 100 的整数和是:+sum);3.4循环控制结构3.4.2 dowhile结构do-while结构的语句格式如下。do循环体while(表

19、达式);与while结构略有不同,do-while结构的执行流程为:先执行循环体内的语句一次,再计算表达式的值,如果为false,就跳过循环体执行循环结构后面的语句;如果为true,就再次执行循环体内的语句。3.4循环控制结构3.4.2 dowhile结构0113-8用do-while结构编写程序,计算从1累加到100的整数和。文件名为Example3_8.java,其代码如下。public class Example3_8/*例 3-8 do-while 结构*authorJava程序设计案例教程*version 1.0int sum=0;存放累加和int i=1;循环变量dosum+=i;

20、i+;whiled C=100);System.out.printin(从 1 累加到 100 的整数和是:+sum);public static void main(String口 args)3.4循环控制结构3.4.3 for结构for结构的语句格式如下。for(表达式L表达式2;表达式3)循环体表达式1用来初始化循环变量,只执行一次。表达式2判断循环条件成立与否,值为boolean 型。表达式3用来更新循环变量的值。for结构的执行流程为:首先计算表达式1执行初始化。然后计算表达式2,如 果值为false,就跳过循环体执行循环结构后面的语句;如果值为true,就执行循环 体内的语句。最后

21、计算表达式3,结束一轮循环。接下来重新计算表达式2,进行下 一轮循环,直到表达式2的值为false,从而结束循环。3.4循环控制结构3.4.3 for结构【例39】用for结构编写程序,计算从1累加到100的整数和。文件名为Example3_9.java,其代码如下。public class Example3_9/*例3-9 for结构*authorJava程序设计案例教程*vers ion 1.0)*/int sum=0;存放累加和for(int i=1;i V=100;i+)sum+=i;System.out.printin(从 1 累加到 100 的整数和是:+sum);public s

22、tatic void main(String args)3.4循环控制结构3.4.4多重循环多重循环是指一层循环结 构的循环体中再包含一层或多 层循环结构,也称嵌套循环。不同类型的循环结构可以相互 嵌套。3.4循环控制结构_3.4.4多重循环【例30】输出九九乘法表。文件名为Example3_10.java,其代码如下。public class Example3_10/*例3-10多重循环输出九九乘法表*authorJava程序设计案例教程*vers ion 1.0*/for(int i=1;i C=9;i+)for(int j=1;j V=i;j+)System.out.print(i+”*

23、”+j+”=+i*j+t);System.out.println();public static void main(String口 args)3.4循环控制结构3.4.4多重循环0113-10运行结果如图3-2所示。以Console戾;、X 备墟底)画I E曰百二百terminatedExample3_10 Java Application C:UsersDELLAppDataLocalGenuitecCommonbinarycom.sun.java.jdk.win32.x86_1,6.0.013binjavaw.exe(2019-11-22 上午 10:19:30)1*1=12*1=23*

24、1=34*1=45*1=56*1=67*1=78*1=89*1=92*2=43*2=64*2=8 5*2=10 6*2=127*2=14 8*2=16 9*2=183*3=9 4*3=12 5*3=156*3=18 7*3=21 8*3=24 9*3=274*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=365*5=256*5=307*5=358*5=409*5=456*6=367*6=428*6=489*6=547*7=498*7=569*7=638*8=649*8=729*9=81rrr图3-2【例3-10】的运行结果03.5转移控制语句Java语言支持3种类型

25、的转移控制语句,也称跳转语句,分别为:3.5转移控制语句_3.5.1 break 语句break语句在以下3种情况下使用。(1用在switch结构中,作用是跳出switch结构,执行switch结构后面 的语句。.2)用在循环控制结构中,作用是跳出当前循环。(3在循环控制结构中和标签配合使用,作用是跳出标签所标记的那层 循环,继续执行其后的语句。3.5转移控制语句3.5.1 break 语句003-11利用break语句编程输出100以内的素数。文件名为Example3_ll.java,其代码如下。public class Example3_l 1/*例 3-11 break 语句*autho

26、rJava程序设计案例教程*version 1.0*/public static void main(String args)boolean flag;for(int i=2,k=0;i C 100;i+)flag=true;f or(int j=2;j V=Math,sqrt(i);j+)if(i%j=0)判断i是否有因子flag=false;break;3System.out.print(i+Ht);3.5转移控制语句_3.5.1 break 语句003-11利用break语句编程输出100以内的素数。k+;if(k%5=0)每行输出5个数System.out.println();输出结果

27、如下:2 3 5 7 1113 17 19 23 2931 37 41 43 4753 59 61 67 71 73 79 83 89 973.5转移控制语句3.5.2 continue语句continue语句在以下两种情况下使用。(1)用在循环 控制结构中,作用是J,结束本次循环而执行 下一次循环,执行前 会先判断循环条件是 否满足。(2)在循环控 制结构中和标签配合使用,作用是结束本层循环,执行标签所标记的那层循环的下一次循环。3.5转移控制语句3.5.2 continue语句003-12利用continue语句编程输出100以内的素数。文件名为Example3_12.java,其代码如下

28、。public class Example3_12/*例 3-12 continue 语句*authorJava程序设计案例教程*version 1.0*/public static void main(String args)loop:f or(int i=2,k=0;i 100;i+)if(i%j=0)判断i是否有因子continue loop;System,out.print(i+t);k+;if(k%5=0)每行输出5个数System.out.println();for(int j=2;j V=Math.sqrt(i);j+)3.5转移控制语句_3.5.3 return语句return

29、语句的作用是结束当前方法的执行并返回到调用该方法的语句处。return语句有以 下两种形式。表达式值的数据类型必须和方法声明中的返回值类型一致,且(1)有返回值。语句格式如下。return表达式;retu rn语句必须是方法体内的最后一条语句。例如,以下语句返回numl与num2的和。public int add(int numl,int num2)return numl+num2;您3.5转移控制语句3.5.3 return语句(2)无返回值。如果方法声明中的返回值类型为void,则return后面的表达式可省 略。例如,以下语句没有返回值,用return使方法结束。public void

30、acfcK int numl,int num2)int sum=numl+num2;return;)语句块由一对大括号和其中一条或若干条语句组成,每个语句 块定义了一个作用域。Java程序流程控制结构包括顺序结构、分支 结构和循环结构。分支结构根据条件判断的结果来选择执行不同的 程序分支。Java中的分支结构包括if-else和switch两种类型。循环 结构根据循环条件的成立而重复性地执行循环语句块。Java中的循 环结构包括while、do-while和for 3种类型。转移控制语句break、continue和return用来实现某些分支结构和循环结构的跳转,使得 程序流程控制更为灵活。

31、3.7习题_1.编写程序从控制台输入3个正数,判断这3个正数能否构成一个三角形。2.身体质量指数BMI二体重/身高2(单位:千克/米2)。BMI中国参考标准见表3-1。编写 程序从控制台输入身高和体重,计算BMI分类。表3-1 BMI中国参考标准BMI分类中国参考标准偏瘦18.5 且23.9偏胖23.9 且26.9肥胖26.9 且&29.9重度肥胖29.93.7习题3.编写程序从控制台输入一批数,输出其中的最大值和最小值,输入数字0结束输入。程序 运行效果如图3-3所示。日 Console 区*41国砧叵画I国且门 口可 Exercise3_3 Java Application C:Users

32、DELLAppDataLocalGenuitecCommonbinarycorr请输入一个数 请输入一个数 请输入一个数 请输入一个数 请输入一个数 请输入一个数(输入0结束):(输入。结束):(输入0结束):(输入0结束):(输入0结束):(输入。结束):5020.688.37249最大值是:88.3最小值是:20.6图3-3习题3的运行效果 3.7习题_4.编写一个猜数字游戏程序。程序运行后产生一个09的整数,用户有3次机会去猜。在规定次数内猜对及猜错,程序都要给出相应提示。程序运行效果如图3-4所示。提示:用Math.random。方法产生一个大于等于0且小于1的随机浮点数。日 Cons

33、ole百、x 41鼠砧囱里)1旦里目。mterminatedExercise3_4 Java Application C:UsersDELLAppDataLocalGenuitecCommonbinarycom.sun.java.jdk 猜数开始,你,共有3次机会。请输入你猜的数:5猜错了,你还有2次机会。请输入你猜的数:3 N猜错了,你还有1次机会。请输入你猜的数:8 J猜错了,你已经用完3次机会。系统产生的数是:1图3-4习题4的运行效果3.8上机实践_1.编写程序从控制台获取用户输入的年份和月 份,输出该年该月的天数。2.一个自然数恰好等于它所有因子的和,则这样的数被称为完全数。例如,6

34、=1+2+3。编写程 序找出1 000以内的完全数,并以因子和的形式列3.编写程序验证1 000以内哥德巴赫猜想。哥 德巴赫猜想:一个大于4的偶数可以表示为两个素 数和的形式。例如,6=3+3,8=3+5等。4.把习题第4题做一些改进,在程序提示下,由用户决定猜数字游戏结束与否。程序运行效果如terminatedLab3_4 Java Application C:User$DELLAppDataLocaKGenuitecComrronbinarycom.$un.java.jdk.win32.x86_1,6.0.013binjavawxe(2020-2-14 下午 11:00:18)猜数开始,你一共有3次机会。请输入你猜的数:5猜错了,你还有2次机会。请输入你猜的数:8猜错了,你还有1次机会。请输入你猜的数:2猜错了,你已经用完3次机会。系统产生的数是:7继续猜数游戏吗?(y/n)y猜数开始,你一共有3次机会。请输入你猜的数:5猜错了,你还有2次机会。请输入你猜的数:3猜错了,你还有1次机会。请输入你猜的数:9猜错了,你已经用完3次机会。系统产生的数是:4继续猜数游戏吗?(y/n)n消希油市.尚谢今片|图3-5上机实践4的运行效果-X-1,*泊图3-5所示。谢谢观看!

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 软件工程

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服