程序员入伙书——如果、那么、否则
- 2012年12月26日
在《初涉算法》一章,我说过程序没什么神秘的,无非是做三件事:
- 计算
- 流程控制
- 输入输出
关于基本的计算,前头几章已经讲过了。现在开始说说流程控制(Flow Control)。
流程控制是程序的核心价值。如果一段程序从头到尾平铺直叙,一条大路走到黑,就不好意思说自己是程序了,顶多是在打算盘。试想,如果没有流程控制,“从1累加到100”的任务就只能这样完成,老没劲了:
total = 0 total += 1 total += 2 total += 3 : : total += 99 total += 100
一个有趣的程序,一定有种种的岔路和转圈。读者可能会问:你不是说计算机不会思考,所有的行为都是已知的么?岔路的变数从何而来?俺回答:道路是已知的,走路的人是未知的。种种变数,来自于人类或其它机器的输入。例如你正在看这个页面,计算机不知道你下一步是往上翻屏、往下翻,还是关掉窗口。你的下一步动作是机器无法预知的,但计算机做好了应对你的任何操作的准备——只要你不掐电源。
下面我就开始介绍“岔路”了:如果这样,如果那样。
举个例子,Python有个功能叫max,如果你在Python Shell里写max(1, 3)按回车,max一定会回答“3”。我们看看,如果自己来写这个功能,程序是什么样的。尝试一下这个例子——在Python Shell下按Ctrl-N打开一个窗口,输入这段代码:
猛击阅读全文