4.3.2 无限循环:while循环

4.3.2 无限循环:while循环

很多应用在执行之初无法确定遍历结构,这就需要一种由触发条件来控制循环的语法,这种循环称为无限循环,也称为条件循环。无限循环一直保持循环操作,直到循环条件不满足才结束,不需要提前知道循环次数。

Python通过保留字while实现无限循环,语法格式如下:

<条件>与if语句中的判断条件一样,结果为True或False。

当程序执行到while语句时,若<条件>的结果为True,则执行<语句块>中的内容,<语句块>执行完之后再次回到while语句进行判断,如此往复,直到循环<条件>的结果为False,则终止循环,执行while循环结构之后的语句。

如案例4-7计算1~100的累加之和,用while结构来实现,代码如下:

注意:<语句块>中一定要有控制<条件>变化的语句,否则会变成死循环。如上面代码的条件是“i<=100”,循环控制变量为i,在循环体中必然有变量i的值发生变化的语句,如“i+=1”。这个变量也称为程序维护计数器。在for循环结构中循环变量逐一取自遍历结构,所以不需要程序维护计数器。

【案例4-9】 用欧几里得距离(辗转相除)计算两个数字的最大公约数和最小公倍数。输入两个数字,求出两数的最大公约数和最小公倍数。

案例分析:

欧几里得距离法也称为辗转相除法,指的是将两个数进行取余运算,取余的结果作为下一轮的除数,上一轮的除数则为下一轮的被除数。用来求最大公约数,则当取余的结果为0时,当前的除数即最大公约数。最小公倍数则是两数的积除以两数的最大公约数。

要进行取余运算,一般将大的数字作为被除数,小的数字作为除数。实现代码如下:

运行结果: