对应书本p82-p83
当我们使用for循环时,我们很清楚循环的次数;比如说我们要输出'前进'5次,编写程序如下:
那如果现在需求变成了 计算1~n之间的整数和,当和大于6000时输出和;
我们有起始1,但什么时候截止却不知道(n);当我们不知道一个循环需要执行的次数时,我们就可以使用while循环来完成
while循环
-while循环一般结构-
while循环在执行时,首先会判断条件是否为真,如果条件为真,执行一次循环体,然后再次回到while条件判断,如果还为真,继续执行循环体;以此类推直到判断条件为假时退出while语句
=======================================================================================================================
举几个例子
该程序会输出 6;执行流程为
#赋i为0
#进入while循环,判断条件i<5,成立,执行while下的循环体i=i+2,执行后i为2;返回while的条件判断
#此时i为2,判断i<5,成立,执行循环体,执行后i为4;返回while的条件判断
#此时i为4,判断i<5,成立,执行循环体,执行后i为6;返回while的条件判断
#此时i为6,判断i<5,不成立,结束while循环
#执行后续语句,print(i),输出i的值为6
=======================================================================================================================
该程序会输出0;执行流程为
#赋i初值为0
#进入while循环,判断条件i<0;不成立,结束while循环
#执行后续语句print(i),输出0
=======================================================================================================================
回到开头,计算1~n之间的整数和,当和大于6000时输出和;显然我们只需要判断 sum<6000就行了;成立时继续加,不成立时就退出循环并输出和,编写程序如下:
该程序会输出6105;执行流程为
#赋sum初值为0,i初值为1
#进入while循环,判断条件sum<6000,为真,进入循环体,将i累加到sum上,i自加1;
#直到判断sum<6000为假,则结束循环
#输出sum,此时sum已大于6000
=======================================================================================================================
所有的for循环都可以用while循环来表述,让我们来改写几个for循环吧
执行流程为
#range(15)生成一个从0到14间隔为1的整数序列,可以简单的看作[0,1,2....13,14]
#依次将序列中的元素赋值给i并执行循环体中内容
#第一次i=1,print(i)输出1
#第二次i=2,print(i)输出2
......
#第n次,i=14,print(i)输出14
#结束for循环
改写成while:
while循环只需关注到什么时候开始,什么时候结束,怎么变化;
比如我们可以创建一个变量a作为循环控制条件,a的初值应为0,a>14时结束循环,a每次变化幅度为+1,编写程序如下
=======================================================================================================================
【思考】请将以下for循环改写成while循环
---while循环
=======================================================================================================================
for循环还可以遍历一个序列中的所有元素
该程序依次遍历了列表list1中的每一个元素并输出;那么如何用while循环来实现这一功能呢?
我们可以构造这样的结构来提取列表lit1中的元素 list1[索引];显然,我们只要能够生成对应的索引就能够依次取出列表中的元素并输出
我们知道列表的索引可以是从左到右,从0开始递增的 ;故while循环的起始为0终止是len(列表)-1
固编写程序如下
=======================================================================================================================
你发现了么,while循环条件中的变量一定会在while循环的循环体里变化,因为如果不变化的话,就不会结束while循环,从而陷入到死循环中