第4章程序流程控制语句_第1页
第4章程序流程控制语句_第2页
第4章程序流程控制语句_第3页
第4章程序流程控制语句_第4页
第4章程序流程控制语句_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 程序流程控制语句程序流程控制语句41结构化程序的结构化程序的3种结构种结构42选择语句选择语句43循环语句循环语句44循环跳离语句循环跳离语句本章要点:本章要点:n了解结构化程序的三种结构n掌握if语句与switch语句的用法n掌握while与do-while的用法和区别n能够用for语句实现循环应用n理解break语句与continue语句的区别和使用4.1 结构化程序的三种结构结构化程序的三种结构 n结构化的程序通过三种结构可以解决:q顺序结构(Sequence Structure)q选择结构(Selection Structure):if-else, switchq循环结构(

2、Iteration Structure):while, do-while, for顺序结构 n顺序结构中,语句的执行顺序是按照程序语句书写的顺序,从上到下依次执行。 选择结构n选择结构是指下一步执行语句有多个选择分支,程序执行流程根据当前的状态,选择其中一个分支执行。循环结构n循环结构是指如果满足一定条件,则反复执行一段程序,直到条件不再满足为止。 n条件语句 if-elseif语句一般采取以下形式:if(p) Aelse B生活中使用生活中使用if判断的实例?判断的实例?If (分数是分数是100)Then考得太好了考得太好了Elseif(分数高于分数高于85)then不错不错Elseif(

3、分数高于分数高于60)then继续努力继续努力Else不及格不及格End if4.2 选择语句选择语句 n 布尔表达式p是任意一个返回布尔数据类型的表达式,而且必须是(比C或C +要严格)。n 与C或C+一样,每个单一语句后面都要有分号。为了增强程序的可读性,应将if或else后的语句用括起来。n else子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。int i1 = 123;int i2 = 456;if( i1i2 ) System.out.println(“The bigger one is: ”+i1);else System.out.pr

4、intln(“The bigger one is: ”+i2);4.2 选择语句选择语句 如果if语句中的语句A或B也是一个if语句,该语句称为嵌套条件语句。 nif(i 0) if(j5) y = 1; else y = -1;4.2 选择语句选择语句 n 多分支语句 switchswitch (expression)case value1 : statements1; break;case valueN : statementsN; break;default : defaultStatements; 4.2 选择语句选择语句 n表达式expression的返回值类型必须是这几种类型之一:

5、int、byte、char、short。ncase子句中的值valueI必须是常量,而且所有case子句中的值应是不同的。ndefault子句是任选的。nbreak语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支。4.2 选择语句选择语句 int a = 100;int b = 20;int c; char oper = +;switch(oper)case +: c = a b; break;case -: c = a - b; break;default : c = a

6、* b; break;4.2 选择语句选择语句 问题:1.程序中程序中switch语句中变量语句中变量value是什么类型?是什么类型?可以是可以是float类型吗?可以是类型吗?可以是char类型吗?类型吗?2.程序中程序中break语句的作用是什么?语句的作用是什么?3.程序中程序中default的作用是什么?的作用是什么?4.switch语句与语句与if-else if-else语句相比较,有语句相比较,有何优势?何优势?4.2 选择语句选择语句 编一程序产生编一程序产生3个个20以内的随机数作为三角形的三条边,以内的随机数作为三角形的三条边,检验是否构成三角形,若可以,输出三条边的长度

7、,检验是否构成三角形,若可以,输出三条边的长度,计算其面积并输出。计算其面积并输出。提示:提示:1、a,b,c是三角形的三条边,则任意两边的和大于第三边。是三角形的三条边,则任意两边的和大于第三边。(或任意两边的差小于第三边)。(或任意两边的差小于第三边)。 面积面积=Math.sqrt(s*(s-a)*(s-b)*s-c),其中其中 s=1/2(a+b+c)2、产生一个、产生一个x1,x2内的随机整数内的随机整数x x=(int)(Math.random()*(x2-x1+1)+x1) Math.random()产生一个产生一个0,1)区间内的实数。区间内的实数。4.2 选择语句选择语句 J

8、ava循环语句 Java跳转语句4.3 循环语句循环语句 引入问题编一程序求1-100的和并输出。1 如何实现?2 用循环语句实现3 写出C语言的实现代码4 C 循环语句由哪几个部分组成?Java循环语句循环语句 和和C语言一样,语言一样,Java的循环语的循环语句也有句也有三种形式三种形式,它们是:,它们是:nwhile 循环语句循环语句nfor 循环语句循环语句ndowhile循环语句。循环语句。 其中while和for循环语句对应当型结构(图1),dowhile语句对应直到型结构(图2)。 图1当型结构图2直到型结构JavaJava循环语句的组成部分循环语句的组成部分循环语句由四个部分组

9、成:循环语句由四个部分组成:n初始化部分(初始化部分(initialization)initialization)n循环条件部分循环条件部分(loop-condition)(loop-condition)n循环体部分循环体部分(body)(body)n迭代部分迭代部分(iteration)(iteration)1-100求和的Java实现1 使用while语句int count=1;int sum=0;while(count=100) sum+=count; count+;3 使用dowhile语句int count=1;int sum=0;do sum+=count; count+; whi

10、le(count=100);2 使用for语句int sum=0,count;for(int count=0;count=100;count+) sum+=count; 找出三种找出三种语句形式中的语句形式中的四个组成部分四个组成部分?比较三种循比较三种循环语句的差异环语句的差异上机验证上机验证三段代码三段代码比较三种循环语句比较三种循环语句nwhile语句、语句、for语句是当型循环结构。它们的语句是当型循环结构。它们的含义是当循环条件满足时,执行循环体。当循含义是当循环条件满足时,执行循环体。当循环条件不满足时终止循环。环条件不满足时终止循环。若循环初始条件不若循环初始条件不满足,则循环体

11、一次都不被执行。满足,则循环体一次都不被执行。ndowhile语句是直到型循环结构,它的含义语句是直到型循环结构,它的含义是执行循环体,直到循环条件不满足时结束循是执行循环体,直到循环条件不满足时结束循环。环。无论循环条件是否满足,循环体都会被执无论循环条件是否满足,循环体都会被执行一次行一次。编程实践n编程求出1-100之间所有偶数的和。循环语句的嵌套使用 有时候,为了解决较有时候,为了解决较为复杂的问题,循为复杂的问题,循环语句的循环体也环语句的循环体也需要用循环语句,需要用循环语句,这种用法就是循环这种用法就是循环语句的嵌套使用。语句的嵌套使用。 问题:求1!+2!+3!+10!int

12、i,j;long fact=1,sum=0;for(i=1;i=10;i+)/外层循环 for(j=1;j=i;j+)/内层循环 fact*=j; sum+=fact;/累加 fact=1; /清除上一次循环结果, /为下次循环作好准备 内层循环的作用是什内层循环的作用是什么?内层循环的循环么?内层循环的循环条件和外层循环有何条件和外层循环有何关系?关系?请上机调试!请上机调试!编程实践n编一程序打印九九乘法表。运行结果如下:n标号语句labelnbreak语句ncontinue语句nreturn语句C语言有那些跳转语句?4.4 循环跳离语句循环跳离语句 标号语句lable 在在Java中中,

13、标号是一个标识符,用于给某程序块一标号是一个标识符,用于给某程序块一个名字。格式如下:个名字。格式如下: label: 通常与通常与break、continue语句一起使用,实现程语句一起使用,实现程序的跳转。序的跳转。break语句break语句的作用是终止包含语句的作用是终止包含break语句的程序块,其语法格语句的程序块,其语法格式为:式为: break label; break语句有两种用法:语句有两种用法:(1)不带标号的)不带标号的break语句。语句。可用在可用在switch、while、for和和do-while循环语句中,用来终止开关语句和循环语句。循环语句中,用来终止开关语

14、句和循环语句。(2)带标号的)带标号的break语句。语句。用在多重循环语句中,用在多重循环语句中,跳出标号跳出标号所指定的块,并从紧跟该块后的第一条语句处执行。所指定的块,并从紧跟该块后的第一条语句处执行。 break BlockLabel;与C语言有何不同?a: /标记代码块标记代码块a b:/标记代码块标记代码块b c: /标记代码块标记代码块c break b; /这段语句将不执行这段语句将不执行 /代码块代码块c结束结束 /这段语句也不执行这段语句也不执行 /代码块代码块b结束结束 /从这段语句开始执行从这段语句开始执行 /代码块代码块a结束结束Java控制语句控制语句Continu

15、e语句: continue语句只能用在循环中,它的作用是终止本次语句只能用在循环中,它的作用是终止本次循环,执行下一次循环。语法格式如下:循环,执行下一次循环。语法格式如下: continue label; continue语句有带标号和不带标号两种形式。语句有带标号和不带标号两种形式。 (1)不带标号的不带标号的continue语句语句用来结束本次循环,跳过用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。判断,以决定是否继续循环。 (2)带标号的带标号的continue语句语句,可以用可以用conti

16、nue跳转到标跳转到标号指明的循环中,这时的格式为号指明的循环中,这时的格式为continue outerLable;与C语言有何不同?outer: for( int i=0; i10; i+ ) /外层循环外层循环 inner: for( int j=0; j10; j+ ) /内层循环内层循环 if( ij ) continue outer; /内层循环结束内层循环结束 /外层循环结束外层循环结束for( int i= 0; i 10; i+ ) if( i = 5 )continue; System.out.print(i);Java控制语句控制语句return语句 return语句的功

17、能是从当前方法中退出,并返回语句的功能是从当前方法中退出,并返回到调用该方法的语句处继续执行程序,同时将方到调用该方法的语句处继续执行程序,同时将方法中的运行结果也带回到调用方法中。它的语法法中的运行结果也带回到调用方法中。它的语法格式如下:格式如下: return expression; 或 return (expression); 其中其中expression为方法运行的结果,要返回到调为方法运行的结果,要返回到调用方法中的。注意,如果一个方法的返回值类型用方法中的。注意,如果一个方法的返回值类型定义为定义为void,则方法体中不一定要有,则方法体中不一定要有return语句,语句,方法执

18、行完后,自动返回到调用处。方法执行完后,自动返回到调用处。n单独一条单独一条return语句放在方法中间时,会产生语句放在方法中间时,会产生编译错误编译错误,因为其后的语句将不会执行到。因为其后的语句将不会执行到。n若真需要退出方法,可以将若真需要退出方法,可以将return语句嵌入转语句嵌入转移语句(如移语句(如if-else)中实现。)中实现。注意注意!Java跳转语句与跳转语句与C语言跳转语句区别语言跳转语句区别nJava有带标号的break和continue语句。C没有。nJava没有goto语句,C有。nJava和C的return语句一样。课堂练习课堂练习阅读分析程序,写出其输出结果int i,j; one: for(i=1;i=10;i+) System.o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论