按 ‘ 条件判断 ’ 标签归档

程序员入伙书——如果、那么、否则

在《初涉算法》一章,我说过程序没什么神秘的,无非是做三件事:

  1. 计算
  2. 流程控制
  3. 输入输出

关于基本的计算,前头几章已经讲过了。现在开始说说流程控制(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打开一个窗口,输入这段代码:
猛击阅读全文