第4章 了不起的分支和循环
4.1 分支和循环
视频讲解
有人说,了不起的C语言,因为“机器码生汇编,汇编生C,C生万物”,C语言几乎造就如今IT时代的一切,它是一切的开端,并且仍然没被日新月异的时代所淘汰。
有人可能会反对,因为首先C语言不是世界上第一门编程语言,它仍然要被降级为汇编语言再到机器语言才能为计算机所理解。
这话题扯得有点太远了,小甲鱼想说的是,其实很多初学者会对编程语言有一种莫名其妙的崇拜感。所以呢,他们必须要找出一门全世界公认最牛的语言再来学习好它。
其实,世界上根本没有最优秀的编程语言,只有最合适的语言,面对不同的环境和需求,就会有不同的编程工具去迎合。
今天的主题是“了不起的分支和循环”,为什么小甲鱼不说C语言、Python了不起,却毫不吝啬地对分支和循环这两个知识点那么“崇拜”呢?
大家在前面也接触了最简单的分支和循环的使用,那么小甲鱼希望大家思考一下:如果没有分支和循环,我们的程序会变成怎样?
没错,就会变成一堆从上到下依次执行、毫无趣味的代码!还能实现算法吗?当然不能!
幸好,所有能称得上编程语言的,都应该拥有分支和循环。接下来从游戏的角度来谈谈,“打飞机”游戏相信大家非常熟悉了,如图4-1所示。
那么,我们就从“打飞机”这个小游戏来解释一般程序的组成和结构。
首先进入游戏,很容易发现其实就是进入一个大循环,虽然小甲鱼现在跟大家讨论的是打飞机,但基本上每一个游戏的套路都是一样的,甚至操作系统的消息机制使用的也是同样一个大循环来完成的。游戏中只要没有触发死亡机制(注:这个游戏的死亡机制是撞到敌机),敌机都会不断地生成,这足以证明整个游戏就是在一个循环中执行的。
接着来看一下分支的概念。分支也就是习惯使用的if条件判断,在条件持续保持成立或不成立的情况下,都执行固定的流程。一旦条件发生改变,原来成立的条件就变为不成立,那么程序就走入另一条路了。就好比拿我们的飞机去撞击敌机,如图4-2所示。
图4-1 打飞机游戏
图4-2 打飞机游戏结束界面
另外,大家有没有发现,小飞机都是一个样子的?嗯,这说明它们是来自同一个对象的复制品。Python是面向对象的编程,对象这个概念无时无刻地融入在Python的血液里,只是暂时还没有接触这个概念,不用着急,后面的章节会详细讲解。
最后我要不要告诉大家这个小游戏就只是用了几个循环和if条件就写出来啦?没错,编程其实就是这么简单。当然,大家要达到自己可以动手写一个界面小游戏的水平,还需要掌握更多的知识!现在需要大家一起来动手,按照刚才看到的小游戏,请拿出纸和笔,尝试将它的实现逻辑勾画出来(可以使用文字描述,现在只谈框架,不讲代码)。
参考框架如下: