第三章-6-循环结构(while循环)


对应书本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循环,从而陷入到死循环中

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM