Java语言程序设计案例教程-第3章.ppt
《Java语言程序设计案例教程-第3章.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计案例教程-第3章.ppt(50页珍藏版)》请在三一办公上搜索。
1、第3章 基本算法和流程控制,本章重要介绍Java语言中的基本算法、分支结构和分支结构语句、循环结构和循环结构语句以及结构嵌套。本章要点3.1 算法和控制结构3.2 选择结构语句3.3 循环结构语句思考与练习3,本章逻辑结构,3.1 算法和控制结构3.1.1 算法3.1.2 算法的描述方法 实例12 用流程图描述算法3.2 选择结构语句3.2.1 if语句3.2.2 switch语句实例13 批改数学试题实例13 批改数学试题实例15 输出期末总评成绩,本章逻辑结构,3.3 循环结构语句3.3.1 while语句实例16 买彩票中大奖3.3.2 for语句3.3.3 跳转语句3.3.4 多重循环
2、语句实例17 求1!+2!+10!的值实例18 求两数之间所有偶数的和实例19 猜年龄,3.1 算法和控制结构,3.1.1 算法 一般来说,所谓算法是指解决一个特定问题采用的特定的、有限的方法和步骤。利用计算机来解决问题需要编写程序,在编写程序前要对问题进行充分的分析,设计解题的步骤与方法,也就是设计算法。没有算法,对要解决的问题就无从下手。有了算法,才有可能设计程序,最终让计算机执行程序,完成所要求的任务。算法的好坏决定了程序的优劣,因此,算法的设计是程序设计的核心任务之一。从计算机应用的角度来说,算法是用于求解某个特定问题的一些指令的集合。用计算机所能实现的操作或指令,来描述问题的求解过程
3、,就得到了这一特定问题的计算机算法。一个算法的功能不仅与选用的操作有关,而且与这些操作之间的执行顺序有关。算法的控制结构给出了算法的执行框架,它决定了算法中各种操作的执行次序。博姆(Bohm)和雅可比尾(Jacopini)两位学者于1966年提出程序有三种基本结构:顺序结构、选择结构和循环结构。这三种基本结构都具有只有一个入口和一个出口的特点,不会出现死循环。,3.1 算法和控制结构,3.1.1 算法(1)顺序结构:它是一种线性结构,也是程序设计中最简单、最常用的基本结构。顺序结构程序是把计算机要执行的各种处理依次排列起来。程序运行后,便从左至右、从上向下地顺序执行这些语句(一个语句行中,从左
4、至右顺序执行各条语句),直至执行完所有语句行的语句或执行至END语句止。一个程序通常可分为3个部:输入、处理和输出。(2)选择结构:它是一种常用的主要基本结构,是计算机科学用来描述自然界和社会生活中分支现象的重要手段。在实际工作中,常常需要根据某个条件是否成立,来决定下一步应做什么工作。编写程序让计算机工作,同样存在这种情况。在这种情况下,程序不再按照行号的顺序来执行各语句行的语句,而是根据给定的条件来决定选取哪条路径,执行哪些语句。选择结构的特点是:在各种可能的操作分支中,根据所给定的选择条件是否成立,来决定选择执行某一分支的相应操作,并且任何情况下均有“无论分支多少,仅选其一”的特性。,3
5、.1 算法和控制结构,3.1.1 算法(3)循环结构算法中有时需要反复地执行某组操作,循环控制就是指由特定的条件决定某些语句重复执行次数的控制方式。它具有封闭型的单入单出性质,也就是说进入循环结构后,只要循环条件未达到结束状态,就始终执行循环体内的操作。,3.1 算法和控制结构,3.1.2 算法的描述方法 算法有许多描述方法,例如:使用日常语言描述解决问题的步骤与方法的自然语言法。这种描述方法通俗易懂,但比较繁琐,且对条件转向等的描述欠直观。针对自然语言法描述的缺点,又产生了流程图法、N-S图法和PAD图等方法。计算机的算法有数值型运算算法和非数值型运算算法。例如,计算N!的算法就属于数值型运
6、算算法;而进行数据检索、分类、排序和计算机绘图、制表等都属于非数值型算法。下面我们介绍三种在计算机算法中常用的描述方法。1流程图 流程图也称为框图,它是用各种几何图形、流程线及文字说明来描述计算过程的框图。用流程图表示算法的优点是:用图形来表示流程,直观形象,各种操作一目了然,不会产生“歧义性”,流程清晰。但缺点是:流程图所占面积大,而且由于允许使用流程线,使流程任意转移,容易使人弄不清流程的思路。,3.1 算法和控制结构,3.1.2 算法的描述方法 书中的表3.1所示为用传统流程图描述算法时常用的符号。例如:赋值、数学运算等判断框根据框中给定的条件是否满足,选择执行两条路径中的某一条路径流程
7、线表示流程的路径和方向连接点表示两段流程图流程的连接点用流程图描述程序的三种基本结构如书中图3.1所示。其中循环结构有两种形式:当型循环和直到型循环。当型循环是先进行判断,再执行循环体内的操作。直到型循环是先执行循环体内的操作,再进行判断。如果采用直到型循环结构,则不论条件是否成立,循环体内的操作都会被至少执行一次。,3.1 算法和控制结构,3.1.2 算法的描述方法,图3.1 流程图描述程序3种基本结构,3.1 算法和控制结构,3.1.2 算法的描述方法 2N-S图 N-S结构化流程图是在美国学者INassi和BSchneiderman1973年提出的方法的基础上形成的一种以他们的名字命名的
8、流程图,其主要特点是取消了流程线,即不允许流程任意转移,而只能从上到下顺序进行,从而使程序结构化。它规定了3种基本结构作为构造算法的基本单元,如图3.3所示。,3.1 算法和控制结构,3.1.2 算法的描述方法 2N-S图图3.3 N-S图描述程序3种基本结构图中的A和B分别代表某些操作,例如:数据赋值、数据的输入或输出等,也可以是3种基本控制结构中的某一种。顺序结构是最简单的一种结构,先执行A然后再执行B。选择结构则根据条件是否满足决定执行A或B。循环结构中的“直到型循环”,是先执行一次A,然后检查条件是否满足,如不满足则再执行一次A,直到某一次在执行完A后条件满足为止。循环结构中的“当型循
9、环”,是先检查给定的循环条件是否满足,若满足则执行A,然后再检查一次条件满足否,直到某一次条件不满足为止。N-S图的不足之处是,当算法存在着较多层嵌套的选择结构时,图中的每个选择结构框会越分越窄,可能难以写下所需要的操作内容。,3.1 算法和控制结构,3.1.2 算法的描述方法 2N-S图图3.3 N-S图描述程序3种基本结构,图3.3 N-S图描述程序3种基本结构,3.1 算法和控制结构,3.1.2 算法的描述方法 2N-S图图中的A和B分别代表某些操作,例如:数据赋值、数据的输入或输出等,也可以是3种基本控制结构中的某一种。顺序结构是最简单的一种结构,先执行A然后再执行B。选择结构则根据条
10、件是否满足决定执行A或B。循环结构中的“直到型循环”,是先执行一次A,然后检查条件是否满足,如不满足则再执行一次A,直到某一次在执行完A后条件满足为止。循环结构中的“当型循环”,是先检查给定的循环条件是否满足,若满足则执行A,然后再检查一次条件满足否,直到某一次条件不满足为止。N-S图的不足之处是,当算法存在着较多层嵌套的选择结构时,图中的每个选择结构框会越分越窄,可能难以写下所需要的操作内容。,3.1 算法和控制结构,3.1.2 算法的描述方法 3PAD图 PAD是英文Problem Analysis Diagram的缩写,其原意是问题分析图。它是近年来在软件开发中被推广使用的一种描述算法的
11、图形方法。它是一种二维图形,从上到下各框功能顺序执行,从左到右表示层次关系。这种描述算法的方法,层次清楚,逻辑关系明了,在有多次嵌套时,不易出错。用PAD图描述程序的三种基本结构如书中图3.5所示。在为具体问题设计算法时,选用何种算法描述工具并不重要,重要的是一定要把算法描述得简洁、正确,不会产生理解上的“歧义性”。,3.1 算法和控制结构,3.1.2 算法的描述方法 3PAD图,图3.5 用PAD图描述程序的3种基本结构,3.2 选择结构语句,3.2.1 if语句1if语句形式之一(1)if形式流程图:可以根据表达式的值来判断应该执行哪一条或者哪些条语句,其语句的流程图如书中图3.6所示。,
12、图中判断框内的条件是if语句中的表达式,处理框A是if语句中的子语句体,处理框B是if语句下面所有的语句。当程序执行到if语句时,计算机首先计算表达式的值,如果值是true,则执行if语句中的子语句体,然后再执行if语句下面的一条语句;如果值是false,则不执行if语句中的子语句,直接执行if语句下面的语句。,3.2 选择结构语句,3.2.1 if语句1if语句形式之一(2)if语句形式。if语句形式为:if(表达式)子语句体;其中,表达式的值必须是布尔类型的,可以是布尔类型的常量或者变量、关系表达式、或者逻辑表达式。子语句体可以是一条语句或者多条语句,但是多条语句要用一对大括号括起来。子语
13、句体中可包含Java语言中的任何语句。,3.2 选择结构语句,3.2.1 if语句1if语句形式之二(1)if-else形式流程图:可以根据表达式的值来判断是执行if语句中的子语句体,还是执行else语句中的子语句体,如书中图3.7所示。,当程序执行到if-else语句时,计算机首先计算表达式的值,如果值是true,则执行if语句中的子语句体A,然后跳过else语句执行下面的一条语句C;如果值是false,则不执行if语句中的子语句体A,而执行else语句中的子语句体B,然后再继续向下执行语句C。,3.2 选择结构语句,3.2.1 if语句1if语句形式之二(2)if语句形式。if-else语
14、句形式:if(表达式)语句体;else语句体;其中表达式的值必须是布尔类型的,可以是布尔类型的常量或者变量、关系表达式、或者逻辑表达式。语句体可以是一条语句或者多条语句,但是多条语句要用一对大括号括起来。else语句不能单独作为一个独立的语句使用,它必须和if语句配对使用。,3.2 选择结构语句,3.2.1 if语句3if语句形式之三(1)if-else if-else形式流程图:可以根据多个表达式的值来判断执行哪一条或者哪些条语句,而不执行其他语句体,如书中图3.8所示。图中判断框内的条件1是if语句中的表达式,条件2是else if语句中的表达式。处理框A是if语句中的子语句体,处理框B是
15、else if语句中的子语句体,处理框C是else语句中的子语句体,处理框D是if-else if-else语句下面的语句。,3.2 选择结构语句,3.2.1 if语句3if语句形式之三 当程序执行到if-else if-else语句时,计算机首先计算表达式1的值,如果值是true,则执行if语句中的子语句体A,然后跳过else if语句和else语句,继续执行下面的语句D。如果表达式1的值为false,则执行else if语句。如果else if语句中的表达式2的值为true,则执行else if语句中的子语句体B,然后跳过else语句,继续执行下面的语句D。如果表达式2的值为false,则
16、执行else语句的字语句体C,然后再继续执行下面的语句D。在实际应用中,else if语句可以多次使用,但是else语句只有一个。,3.2 选择结构语句,3.2.1 if语句3if语句形式之三(2)if-else if-else语句形式。if-else if-else语句基本格式为:if(表达式1)语句体1else if(表达式2)语句体2 else if(表达式n)语句体 nelse 语句体 n+1,3.2 选择结构语句,3.2.1 if语句3if语句形式之三 其中表达式的值必须是布尔类型的,可以是布尔类型的常量或者变量、关系表达式、或者逻辑表达式。语句体可以是一条语句或者多条语句,但是多条
17、语句要用一对大括号括起来。一个if语句可以跟随任意多个else if语句,但只能有一个else语句。,图3.8 if-else if-else形式流程图,3.2 选择结构语句,3.2.2 switch语句1switch语句形式switch语句的完整形式为:switch(表达式)case 常量1:语句体1;break;case 常量2:语句体2;break;case 常量3:语句体3;break;case 常量n:语句体n;break;default:语句体n+1;,3.2 选择结构语句,3.2.2 switch语句1switch语句形式在使用时要注意以下几点:(1)表达式的值必须是整型或者字符
18、型数据,并且要与各个语句中case之后的常量值类型相同。(2)一个switch语句中,可以有任意多个case语句,但是每个case之后的常量值不能相同。case语句中的子语句体可以是一条或者多条任意Java语句。(3)一般情况下,每个case语句的最后是break语句,用来从整个switch语句中,跳出,继续执行switch语句下面的语句。如果没有使用break语句,则继续执行下面的case语句中的字语句体,直到遇到break语句,或者整个switch语句结束。(4)当所有case语句中的常量值都与表达式的值不相同时,则执行default语句中的子语句体,如果没有default语句,则不执行任
19、何内容。,3.2 选择结构语句,3.2.2 switch语句 2switch语句执行顺序 当执行到switch语句时,首先计算表达式的值,然后依次与下面大括号中case语句中的常量作比较。当找到和表达式值相同的常量值后,将不在继续查找,并以此处作为进入大括号中case语句的子语句体的插入点。插入点之前的子语句体不会再被执行,而插入点之后到第一个break语句之前的所有子语句体都会被执行。遇到break语句时,结束整个switch语句的执行,跳到其下面的语句,继续运行程序。switch语句执行顺序可以这样比喻:switch语句中的表达式值是一把钥匙,每个case语句的常量值代表一个房间的门锁。只
20、有当钥匙和门锁吻合时,我们才能打开门,进入房间。如果没有吻合的门锁,我们将直接进入default房间。进入某个房间后,我们执行房间中的命令,然后一直向下走,依次进入其后的每个房间并执行其中的命令。直到遇到出口,也就是break语句,走出房间,完成整个switch语句的执行。,3.2 选择结构语句,3.2.2 switch语句 2switch语句执行顺序 从上面的描述中,我们可以看出break语句的重要性。break语句的位置会影响到输出结果。例如,下面是某个程序的switch语句部分,如果变量i的值为1,则会输出“键入的数字是1”的文字,然后继续执行switch语句后边的语句。但是如果case
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 案例 教程

链接地址:https://www.31ppt.com/p-5436223.html