第4章程序设计中的流程控制.pdf
《第4章程序设计中的流程控制.pdf》由会员分享,可在线阅读,更多相关《第4章程序设计中的流程控制.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 45第 4 章 程序设计中的流程控制 什么是流程控制呢?流程就是做一件事情的顺序,或者说是次序。在程序设计中,流程就是要完成一个功能,而流程控制则是指如何在程序设计中,控制完成某种功能的次序。本章将通过大量的实例,为读者讲述如何在程序中设计好流程控制。4.1 编程风格 本章开始接触到编写程序代码,有一点必须强调,那就是编程风格的问题,虽然其不影响程序代码段的运行,但对于程序的可读性起着重要的作用。自己编出的程序要让别人看懂,首先在排版方面要非常注意,下面将探讨编程风格的问题。其实每个人的编程风格、每个软件开发公司的编程风格都不一样。一个人编写的程序代码,就应该能让别人看懂,甚至是过了很长时间
2、,自己也要看的懂,否则这个程序就成了一个死程序。编程风格是指编程时的格式,让程序看上去就很有层次感。下面通过一些例子,说明编程风格的重要性,先来看第一个例子。public class math public static void main(String args)int x=12;double y=12.3d;void print()char a=a;System.out.println(a);System.out.println(x+y);上面程序段的整个排版看起来是否很舒服,并且层次感很强?是否一眼看上去就知道整个程序架构?这里的关键在于缩排,缩排也可以称为跳格。上一个程序段采用的跳格形
3、式:“public class math”是顶格的,接着主运行程序前跳 4个空格,在主运行程序内的运行代码段一律跳 8 个空格,而在主运行程序方法内的代码前,再跳 4 个空格。这样整个程序的所属关系就很明显了。主运行程序从属于“math”类,其余的都属于主运行程序,而在主运行程序方法内的代码段又属于此方法。规律就是空格多的代码从属于空格少的代码。除了空格外,还有一个很有必要,就是空行。为什么要空行呢?先看下列程序代码,再来仔细分析。public class math public static void main(String args)46 int x=12;int y=23;void pr
4、int().void view().下面仔细分析上面的程序段:在“print”方法与“view”方法之间有个空行,使用空行区分不同功能的模块。“print”方法所完成的功能与“view”所完成的功能不一样,所以使用空行将它们分开,这样更增加了程序的可读性。另外,需要注意的是方法或属性的命名。这些名字应该有含义,最好有规律。不要只使用“a”、“b”这种通用变量,适当可以根据变量或函数的功能为其命名。上面的“print”,其他程序员一看就知道这个方法,是有关打印或输出的函数。再如:变量名“name”,一看就知道是有关名字的变量。所以,一定要命名的有意义,否则程序的可读性不强。还有一点是有关注释的。
5、在每个方法的方法名旁边,应该添加一些注释,同时在一段程序完成之后,也要对程序的功能及如何操作,做个简单的描述。只要做到以上几点,这个程序他人来读就很容易。即使自己在很长时间后,再来读程序也会一目了然。4.2 条件语句 在现实生活中,经常听人说:如果某人发财了,某人会做什么。其实这就是程序设计中所说的条件语句。像“如果.”、“就.”,“否则”,当然这只是很简单的条件语句,在真正的程序设计中,使用的条件语句要比这复杂的多。4.2.1 条件语句的种类 在程序设计中,条件语句的标准格式如下:if(条件)目的一;else 目的二;掌握格式后,先看一个简单的程序段。/将整型变量 a,b 的大小比较得出的布
6、尔型变量作为条件语句的条件/通过条件语句来得出不同的输出结果 public class control 47 public static void main(String args)int a=20;int b=30;if(ab)System.out.println(很幸运!);else System.out.println(很开心);运行结果 很开心 分析上面的程序段,因为“a=20”而“b=30”,所以“ab”,就输出“很幸运”,如果“ab”是真,就输出“很幸运”,否则输出“很开心”。在条件语句的程序设计中,有一种最简单的条件语句,如下所示:if(条件)目的;如果有很多的目的,也可以采取下
7、列的形式:if(条件)目的一;目的二;目的三;目的四;下面看一个有关这种条件语句的例子。public class control1 public static void main(String args)int salary=10000;if(salary500)System.out.println(要想请吃饭!);System.out.println(想请唱歌!);System.out.println(想请喝酒!);运行结果 想请吃饭!想请唱歌!想请喝酒!48分析上面的程序段:条件语句中判断“salary500”是否为真,如果是真就输出“想请吃饭!想请唱歌!想请喝酒”,如果是假,就什么都不做
8、。在程序中“salary10000”,满足“salary500”,条件为真,所以输出以上的三句话。注意:在多个目的的程序段中,一般按顺序执行,即先目的一,再目的二,再目的三,依次执行下去。如果出现多种不同的条件,应该如何处理呢?可以使用条件语句中的复杂型,其结构就是:if(条件 1)目的 1;else if(条件 2)目的 2;else if(条件 3)目的 4;else 不满足以上所有条件,如何办;根据以上的结构,学习有关这种复杂条件语句的实例,代码如下所示。/当 achievement 等于 100,就奖励一台笔记本电脑/当 achievement 大于 90 小于 100,就奖励一个 M
9、P4/当 achievement 大于 80 小于 90,就奖励一块网卡/当 achievement 大于 60 小于 80,不给予奖励/当 achievement 小于 60,放假回学校补习 public class control2 public static void main(String args)int achievement=85;if(achievement=100)System.out.println(奖励一台笔记本电脑);else if(achievement=90)&(achievement=80)&(achievement=60)&(achievement806090)
10、&(Avg80)&(Avg70)&(Avg60)&(Avg0;n-,x+)System.out.println(x);运行结果 1 2 3 4 5 6 7 8 9 10 在这个程序段里,用 4 句代码完成了前面程序段里 12 句代码所解决的事情,如果前面的程序段中,需要连续加 1 加 100 次,参考下面的程序段。public class control6 public static void main(String args)int x;int n=100;for(x=1;n0;n-,x+)System.out.println(x);53在这个程序段里,使用 4 句代码解决了前面程序段中 1
11、02 句代码所解决的问题,这就是循环语句的优势。下面详细的解释 For 循环语句中各个子项的意义。?初始化表达式:初始化表达式的意义,在于定义循环之前变量的值是多少,如果没有这一项,就不知道该从哪个值开始循环。?判断表达式:判断表达式的作用在于规定循环的终点。如果没有判断表达式,那么此循环就成了死循环。?递增(递减)表达式:这一项规定每执行一次程序,变量以多少增量或减量进行变化。其实也可以利用在条件判断语句中提到的流程图来编写程序,在流程图中可以看出程序运行的顺序,如图 4.4 所示。下面再看一个九九乘法表的程序段。先来绘制流程图,如图 4.5 所示。初始化表达式是否满足判断表达式执行循环体中
12、的语句执行递增或递减条件否是循环体开始 x=1x是否大于10y=1y是否大于10 x*y是否否是执行循环体外的语句 图 4.4 循环语句流程图 图 4.5 九九乘法表流程图 根据流程图,使用循环语句编写一个乘法口诀表。/这是一个多重 for 循环语句 public class control7 public static void main(String args)for(int x=2;x10;x+)for(int y=1;y0)x=x+1;y-;sum+=x;System.out.println(sum);运行结果 5050 这个程序段是将数字从 1 一直加到 100,条件是只要“y”大于
13、 0,就会执行大括号里的语句。“y”初始值是 100,满足条件,所以执行大括号的表达式。先将“x+1”赋给“x”,因为 x 的初始值是 0,所以 x 从 1 开始计数,然后,将“y”自减 1,此时“y”变成了 99,55将“sum”加上“x”赋给“sum”。此时,执行语句结束了,又会回到小括号的条件,最后再比较“y=99”是否大于 0,如果大于 0,再继续执行大括号里的语句。一旦“y”自减到小于 0,则将结束执行大括号里的语句,开始执行大括号外的语句。在上面的程序段中,y 就相当于一个计数器。同样,在编写 while 语句,要先绘制流程图,根据流程图再来编写程序段,整个思路就会很清晰了,下面先
14、看 while 的流程图,如图 4.6 所示。其实 while 语句很简单,根据这个流程图,就可以思路很清晰的编写程序段,下面针对上面的程序段来绘制流程图,如图 4.7 所示。判断是否满足while后小括号的条件将执行大括号内的执行语句执行while条件外的语句是否 判断y值是否大于0先执行x+执行while条件外的语句是否再执行y-最后将 sum+X的值赋给sum 图 4.6 循环语句流程图 图 4.7 一个循环语句实例的流程图 看了这个流程图,会发现按照流程图来编写程序简单多了。为了巩固以上所说,再看一个例子。试编写程序实现输出 1100 间的整数,并且此整数必须满足:它是 3 的倍数,但
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 程序设计中的流程控制 程序设计 中的 流程 控制
限制150内