(共14张PPT)
4.3运用循环结构描述问题求解过程
4.4.2
while循环的应用
复习巩固
探究活动
思考1,适合用那种基本结构解决问题?
思考2,用学过的for循环结构能不能解决此问题?
下面我们来学习一种新的循环结构——while循环结构
while循环语句的一般格式
:
Whlie
(表达式):
语句或语句组
Whlie循环是当型循环,只要条件满足,就不断循环;否则退出循环。
(1)表达式一般是一个关系表达式或一个逻辑表达式,表达式的值应该是一个逻辑值真(True)或假(False)。
(2)当表达式的值为真时,执行循环体语句;当表达式的值
为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。
(3)每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值。一旦表达式的值为假就退出循环,为真时就继续执行循环体语句。
while循环结构
while循环语句的一般格式
:
Whlie
(表达式):
语句或语句组
Whlie循环是当型循环,只要条件满足,就不断循环;否则退出循环。
(4)循环体中必须有改变表达式值的语句,否则将成为死循环。
(5)while循环可以用流程图来演示执行过程,如图4-15所示。
while循环结构
解决问题
下面我们回到课前的那个问题?
设所拉赞助人的数量为num(num=1,2,3,...),每次募集的费用为money,每次募集之后总费用为sum,则sum可以用如下的式子表示:
sum=20+25+30+…
于是这个问题就可以转化为:当sum>=500时,求num的值。
分析问题
根据上述的分析,可以设计如下算法:
(1)令num=1;
(2)令money=20;
(3)令sum=20;
(4)num=num+1
(5)money=money+5
(6)sum=sum+money
(7)如果sum<500,则返回步骤(4);
(8)输出num的值;
(9)结束。
设计算法
编写程序
num=1
money=20
sum=20
while
sum<500:
num=num+1
money=money+5
sum=sum+money
print(num)
交流讨论
对于上述问题的解法,如果改变几个变量的初始值,假设令“num=0,money=20,sum=0”,那么,while循环体中的程序段应该如何编写?它们之间的语序能改变吗?为什么?
程序改写
num=0
money=20
sum=0
while
sum<500:
sum=sum+money
money=money+5
num=num+1
print(num)
随堂练习
1
D
随堂练习
2.有如下程序代码,程序运行后,输出s的值为(
)
s=0
i=1
while
s<20:
s=s+i
i=i+2
print(s)
A.9
B.16
C.17
D.25
D
学以致用
1.使用
while
循环实现输出
1-100
内的所有奇数
?