3.4 循环控制结构
计算机是以一步一步执行指令的方式来解决问题的,程序员要做的事情就是将问题的解决方案表达成一步一步执行的指令序列。在解决问题的指令序列中,经常会遇到需要重复执 行的一组操作。例如,假设程序要求用户输入 5 个数据,怎么表达这个要求呢?一种方式是 将所有步骤罗列出来:
Step1:输入 1 个数据存入变量 a
Step2:输入 1 个数据存入变量 b
Step3:输入 1 个数据存入变量 c
Step4:输入 1 个数据存入变量 d
Step5:输入 1 个数据存入变量 e
这种表达方式既直接又简单,但是明显有局限性——若要求输入 100 个数据怎么办?难道直
接用 100 行几乎相同的指令,并且命名 100 个变量来存储输入数据?这显然是非常笨拙的编 程方式。我们来看另一种表达方式:
Step1:输入 1 个数据存入集合 a
Step2:如果已经输入了 5 个数据,就结束;否则转到 Step1。
这种表达方 式一方面使 用了集合来 存储大量数 据,另一方 面采用了“ 循环”结 构(Step1®Step2®Step1)来控制流程。其功能与罗列所有步骤的方式是一样的,但形式上更 简洁,并且可以轻松地推广到 100 个输入的情形而不增加代码量(只需将 Step2 中的 5 改成 100 即可)。鉴于编程语言的任务之一就是提供合适的语言构造使程序员能够方便地表达程序 逻辑,这第二种表达方式应该被编程语言所支持,事实上也正是如此。例如对于大量数据的 存储,Python 提供了列表等类型,只要一个变量就能存储 100 个数据。而为了表达重复执行的指令,Python 提供了循环语句,这正是本节要介绍的主要内容。 循环是程序中的一组语句,只写一次但可以连续执行多次。在编程语言中,构成循环的
这组语句的连续执行的次数一般有三种方式指定:第一,直接指定循环次数;第二,遍历一 个数据集合,从而间接指定循环次数(集合有多少成员就循环多少次);第三,指定一个条件, 当条件满足时循环或者循环执行到条件满足为止。
下面介绍 Python 语言中的循环结构。