程序的流程控制.ppt
《程序的流程控制.ppt》由会员分享,可在线阅读,更多相关《程序的流程控制.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于程序的流程控制关于程序的流程控制1现在学习的是第1页,共70页2教学目标教学目标v熟练掌握熟练掌握JavaJava语言中的流程控制结构。语言中的流程控制结构。v掌握掌握JavaJava中选择结构的基本原理及使用方法。中选择结构的基本原理及使用方法。v掌握掌握JavaJava中循环结构的基本原理及使用方法。中循环结构的基本原理及使用方法。v熟练掌握熟练掌握JavaJava中数组的使用方法及能够熟练应用。中数组的使用方法及能够熟练应用。现在学习的是第2页,共70页3教学重点教学重点v流程控制构成了编程语言的逻辑流程控制构成了编程语言的逻辑,而对这些控制语而对这些控制语句的灵活运用又能有助于编程
2、逻辑的清晰整理。句的灵活运用又能有助于编程逻辑的清晰整理。v本章首先介绍了本章首先介绍了JavaJava流程控制结构中的选择结构流程控制结构中的选择结构和循环结构,最后,介绍了跳转语句的基本原理。和循环结构,最后,介绍了跳转语句的基本原理。掌握数组的声明,生成和初始化方法。掌握数组的声明,生成和初始化方法。熟练掌握数组的使用,对于多维数据,要求学生熟练掌握数组的使用,对于多维数据,要求学生主要掌握二维数组的声明、生成、初始化、及使主要掌握二维数组的声明、生成、初始化、及使用方法。用方法。现在学习的是第3页,共70页4例例1 1:打印一个打印一个打印一个打印一个3x43x43x43x4的矩阵的矩
3、阵的矩阵的矩阵class DrawRect public static void main(String args)System.out.println(“*);System.out.println(“*);System.out.println(“*);3.1 3.1 程序的流程控制程序的流程控制 现在学习的是第4页,共70页5例例2 2:上一个例子的变形上一个例子的变形上一个例子的变形上一个例子的变形1.class DrawRect 2.3.public static void main(String args)4.5.System.out.print(“*);6.System.out.pr
4、int(“*);7.System.out.print(“*);8.System.out.println(“*n);9.System.out.print(“*);10.System.out.print(“*);11.System.out.print(“*);12.System.out.println(“*n);13.System.out.print(“*);14.System.out.print(“*);15.System.out.print(“*);16.System.out.println(“*);17.18.问题:如何作出决策,提高程序的执行效率?问题:如何作出决策,提高程序的执行效率?现
5、在学习的是第5页,共70页6分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案v以上两种方法是初学者最容易想到的,但做了很多以上两种方法是初学者最容易想到的,但做了很多重复的工作,会使程序变得很繁琐,结构也不够清重复的工作,会使程序变得很繁琐,结构也不够清晰。在工作量少的时候似乎没那么明显,但当需要晰。在工作量少的时候似乎没那么明显,但当需要打印的矩阵比较大的时候就会显现出来(如:打印打印的矩阵比较大的时候就会显现出来(如:打印一个一个100 x60的矩阵)。的矩阵)。v想解决这个问题我们可以通过循环来解决,讲到循想解决这个问题我们可以通过循环来解
6、决,讲到循环就要先介绍一下程序的结构化设计。环就要先介绍一下程序的结构化设计。现在学习的是第6页,共70页7程序设计的三种结构程序设计的三种结构程序设计的三种结构程序设计的三种结构v顺序结构顺序结构v循环结构循环结构v选择结构选择结构循环结构与选择结构所使用的语句又叫作循环结构与选择结构所使用的语句又叫作流程控流程控制语句制语句,作用是改变程序的执行顺序。,作用是改变程序的执行顺序。现在学习的是第7页,共70页8vJava的程序控制语句分为以下几类:的程序控制语句分为以下几类:选择、循环选择、循环和跳转。和跳转。v块块(即复合语句)是指由一对花括号括起来的若(即复合语句)是指由一对花括号括起来
7、的若干条简单的干条简单的Java语句。语句。v块定义着变量的作用域(块定义着变量的作用域(scope)。一个块可以)。一个块可以嵌套在另一个块中。嵌套在另一个块中。3.1 3.1 程序的流程控制程序的流程控制现在学习的是第8页,共70页93.1 程序的流程控制程序的流程控制public static void main(String args)int a;.int b;./变量变量b的作用域只在块内,到块外便失去的作用域只在块内,到块外便失去作用。作用。.现在学习的是第9页,共70页103.2 3.2 选择结构选择结构vif语句语句if(expression)语句语句1;语句语句2;练习:练习
8、:NumberTest.java条件判断条件判断执行语句执行语句或代码块或代码块真真假假现在学习的是第10页,共70页113.2 选择结构vif语句语句expression=true语句语句2语句块语句块语句块:用花括号括起来的语句。if(expression)statment1;statment2;语句2;左侧的语句也以下语句有什么不同?if(expression)statment1;statment2;语句2;现在学习的是第11页,共70页123.2 3.2 选择结构选择结构v提示提示:合理采用缩进格式书写代码合理采用缩进格式书写代码坚持用左右大括号将坚持用左右大括号将if条件括起条件括起
9、来的习惯,即使一条语句也括。来的习惯,即使一条语句也括。velse子句子句if(expression)statement1;else statement2;statement2;next_statement;条条件件判判断断执行语句执行语句2 2或代码块或代码块2 2假假执行语句执行语句1 1或代码块或代码块1 1真真现在学习的是第12页,共70页133.2 选择结构vif语句的嵌套形式语句的嵌套形式if()if();else ;else if();else ;z若条件若条件1成立成立,则执行哪一组则执行哪一组IF语句语句?z若条件若条件1不成立不成立,则执行哪一组则执行哪一组IF语句语句?现
10、在学习的是第13页,共70页143.2 3.2 选择结构选择结构vif语句的嵌套形式语句的嵌套形式 if();else if();else if().else;判判断断条条件件1 1执行语句执行语句1 1或代码块或代码块1 1判判断断条条件件2 2执行语句执行语句2 2或代码块或代码块2 2.判断条件判断条件N N执行语句执行语句N N或代码块或代码块N N执行语句执行语句N+1N+1或代码块或代码块N+1N+1真真真真真真假假假假假假假假现在学习的是第14页,共70页153.2 3.2 选择结构选择结构vif语句的嵌套形式语句的嵌套形式 if();else if();else if().el
11、se;z什么情况下会执行到语句什么情况下会执行到语句2,什么情况下会执行到语句什么情况下会执行到语句n?z语句语句1与语句与语句2等是否可以都执行等是否可以都执行?else总是和距总是和距它最近的它最近的if配对配对现在学习的是第15页,共70页16zswitch语句又称多分支选择语句多分支选择语句z与if-else一样,是Java语言的条件选择语句,if 语句是判断条件的值,再从两个程序块中选择其中一块执行,只能出现两个分支,而switch语句可存在多个分支。z处理多种分支情况时,用switch语句代替if语句可以简化程序,使程序结构清晰明了,可读性增强。3.2.3 switch3.2.3
12、switch语句语句现在学习的是第16页,共70页17switch语句的一般形式为:语句的一般形式为:switch()case:;break;case:;break;.case:;break;default:;产生的结果值可以是产生的结果值可以是char型型,byte型型,short型型,int型或枚举型或枚举型。型。不加不加break语句,执行语句,执行流程如何?流程如何?若条件值与若条件值与case值均不匹配,而又没有值均不匹配,而又没有此句,执行流程如何?此句,执行流程如何?3.2.3 switch3.2.3 switch语句语句现在学习的是第17页,共70页18 switch()cas
13、e:case:case:;break;.case:;break;default:;执行流程如何?执行流程如何?实例:实例:SwitchSample.javaSwitchSample.java3.2.3 switch3.2.3 switch语句语句现在学习的是第18页,共70页19vfor语句的一般形式为:语句的一般形式为:for(;)v其中:其中:初始化部分设置控制循环的变量的初值。初始化部分设置控制循环的变量的初值。条件判断部分可以是任何布尔表达式。条件判断部分可以是任何布尔表达式。迭代因子控制循环变量递增或递减。迭代因子控制循环变量递增或递减。3.3.1 3.3.1 循环循环-for-fo
14、r现在学习的是第19页,共70页20vfor语句的执行过程为:语句的执行过程为:执行初始化。执行初始化。判断条件的返回值。如果为真执行循环体语句;判断条件的返回值。如果为真执行循环体语句;如果为假就跳出如果为假就跳出for语句循环。语句循环。执行迭代因子,为下次循环做准备。执行迭代因子,为下次循环做准备。返回返回。vfor语句是先执行语句是先执行,即先判断后执行,如果不,即先判断后执行,如果不满足判断条件,满足判断条件,循环体可能一次都不能执行。循环体可能一次都不能执行。3.3.1 3.3.1 循环循环-for-for现在学习的是第20页,共70页21forfor循环流程图实例:实例:ForT
15、ick.java doubleFor.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse后续代码后续代码步长变量的改变步长变量的改变现在学习的是第21页,共70页流程图进程进程判断判断输入输输入输出出起始符起始符NYYN开始开始结束结束int i=0i3?i+i4?j+int j=0打印打印*号号打印换行打印换行符号符号现在学习的是第22页,共70页23zcollection-based for循环循环z采用采用for语句的基本格式语句的基本格式z在在for循环语句的圆括号之间的第一个控制表达
16、循环语句的圆括号之间的第一个控制表达式中是循环变量,然后以式中是循环变量,然后以冒号冒号分隔,第二个控制分隔,第二个控制表达式,确定了第一个控制表达式中声明的变量表达式,确定了第一个控制表达式中声明的变量的取值来源的集合。的取值来源的集合。程序:程序:AverageGrade.java3.3.1 3.3.1 循环循环-for-for现在学习的是第23页,共70页24while语句的一般形式为:语句的一般形式为:while();实例:实例:NumAdd.java3.3.3 3.3.3 循环循环-while-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分
17、真真现在学习的是第24页,共70页25vwhile语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。判断条件表达式的值,如果为真,就执行循环体语判断条件表达式的值,如果为真,就执行循环体语句;如果条件表达式的值为假,就跳出句;如果条件表达式的值为假,就跳出while语句。语句。执行迭代部分,为下次循环做准备。执行迭代部分,为下次循环做准备。返回返回。vwhile语句是先执行语句是先执行,即先判断后执行,如果不满足判断条件,即先判断后执行,如果不满足判断条件,循环体可能一次都不能执行。循环体可能一次都不能执行。注意,在循环体中应该有使循环趋注意,在循环体中应
18、该有使循环趋于结束的语句,否则循环将永远进行下去,形成死循环。于结束的语句,否则循环将永远进行下去,形成死循环。3.3.3 3.3.3 循环循环-while-while现在学习的是第25页,共70页26whilewhile循环循环的流程图的流程图前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueFalse后续代码后续代码实例:实例:AverageGrade2.java现在学习的是第26页,共70页27 for for循环与循环与whilewhile循环的比较循环的比较vfor循环比循环比while循环结构清晰。循环结构清晰。1.
19、for循环的循环控制变量的定义、初始化,选换循环的循环控制变量的定义、初始化,选换结束的条件,步长变量的控制都在一条语句中结束的条件,步长变量的控制都在一条语句中实现。实现。2.while循环的循环控制变量是在循环之前定义的,循环的循环控制变量是在循环之前定义的,循环控制条件与循环控制条件与for相同,而步长变量是在循环相同,而步长变量是在循环体内部修改的。体内部修改的。v有时候用有时候用while实现会方便很多。例如在程序中将在实现会方便很多。例如在程序中将在110之间产生一个随机数,当产生的数字为之间产生一个随机数,当产生的数字为7的时候打印一的时候打印一个提示语句并结束程序,否则继续执行
20、直到产生的数字个提示语句并结束程序,否则继续执行直到产生的数字为为7。现在学习的是第27页,共70页28zwhile语句先判断后执行语句先判断后执行,while语句为语句为“当型当型“循环循环zdo-while语句先执行后判断,循环体至少被执语句先执行后判断,循环体至少被执行一次行一次,称称do-while语句为语句为”直到型直到型“循环。循环。3.3.5 3.3.5 循环循环-do-while-do-while现在学习的是第28页,共70页29do-while语句的一般形式为语句的一般形式为:do ;while();注意:这里注意:这里while()后面有一个()后面有一个“;”3.3.5
21、3.3.5 循环循环-do-while-do-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真现在学习的是第29页,共70页30vdo-while语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。执行循环体语句。执行循环体语句。执行跌代部分,为下次循环做准备。执行跌代部分,为下次循环做准备。判断条件表达式的值,如果为真,就返回判断条件表达式的值,如果为真,就返回;如果;如果条件表达式的值为假,就跳出条件表达式的值为假,就跳出do-while语句。语句。vdo-while语句是先执行循环体,再判断,循环体语句是先
22、执行循环体,再判断,循环体至少被执行一次。同样,在循环体中应该有使循至少被执行一次。同样,在循环体中应该有使循环趋于结束的语句。环趋于结束的语句。3.3.5 3.3.5 3.3.5 3.3.5 循环循环-do-while-do-while-do-while-do-while现在学习的是第30页,共70页31do whiledo while循环循环流程图流程图程序见:程序见:IntTurn.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse现在学习的是第31页,共70页32z嵌套循环:嵌套循环:
23、用户可以将任何一种循环嵌入到另一用户可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。种循环中,并且可以进行任意多重的嵌套。例题:计算从例题:计算从1开始到给定数值之间所有整数的乘积。开始到给定数值之间所有整数的乘积。程序见:程序见:Factorial.java3.3 3.3 循环循环现在学习的是第32页,共70页33z功能:功能:结束本循环,跳到循环语句之后的第一条语结束本循环,跳到循环语句之后的第一条语句处执行。句处执行。例题:例题:BreakLoop1.javaz带标号的带标号的break语句:语句:允许程序跳转至有标号的外允许程序跳转至有标号的外层块或循环之后的语句处继
24、续执行,而不管这些嵌层块或循环之后的语句处继续执行,而不管这些嵌套块有多少层。套块有多少层。程序见:程序见:BreakLoop2.java3.4 3.4 跳转语句跳转语句 -break-break现在学习的是第33页,共70页34z功能:结束本次循环,进入下一次循环,例如:功能:结束本次循环,进入下一次循环,例如:for(int i=1;i=limit;i+)if(i%3=0)continue;sum+=i;3.4.2 continue3.4.2 continue现在学习的是第34页,共70页35z功能:可以停止执行内循环,并且可以直接跳转至功能:可以停止执行内循环,并且可以直接跳转至包含本循
25、环的外循环的下一轮迭代的起始处继续执行。包含本循环的外循环的下一轮迭代的起始处继续执行。程序见:程序见:MultiList.java3.4.2 3.4.2 带标号的带标号的continuecontinue现在学习的是第35页,共70页3.5 3.5 数组数组问题的提出问题的提出 现有一班级共现有一班级共3030人,想要计算全班参加人,想要计算全班参加英语考试的平均分数,应如何设计程序实现英语考试的平均分数,应如何设计程序实现?问题的分析问题的分析(1)(1)程序结构程序结构?顺序,选择,循环顺序,选择,循环(2)(2)数据结构数据结构?单变量,数组单变量,数组现在学习的是第36页,共70页数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 流程 控制
限制150内