(共17张PPT)
循环的嵌套和控制
1)问:下列图形、表达式或词语有什么共同的特征?
利用FOR循环语句,输出一行图形(五颗星号)。
* * * * *
如果是输出3行这样的星号图形呢
* * * * *
* * * * *
* * * * *
那要是输出十行,百行星号呢?
嵌套循环(多重循环)
for循环语句中还有一个for循环语句,像这样在一个循环语句中含有另一个循环语句,就形成了嵌套循环,也叫多重循环。
思考及练习:
请同学们模仿刚才的一段程序代码,编写程序语
句,输出5行6列的星号图形。
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
试着输出以下三角形状的星号图形
*
* *
* * *
实践:
用for循环嵌套语句,输出以下数字排列图形。
请同学们一起解读以下程序,口头解读得出运行结果,
运用循环嵌套语句的注意点。
*内循环变量与外循环变量不能同名;
*外循环循环体的语句缩进必须把握清楚;
for i in range(1,6):
for i in range(1,6):
print(i+j)
print(i,’:’)
for i in range(1,6):
for j in range(1,6):
print(i+j)
print(i,’:’)
总结
问题1:什么样的问题适宜用嵌套循环来实现?
问题2:嵌套循环如何正确使用?
例题
求6x+5y+4z=50正整数解的个数及显示所有解?
用流程图描述求解6x+5y+4z=50的算法
算法的流程图
表示
①t=0
②x=1
③y=1
④z=1
⑤如果6x+5y+4z==50,t=t+1,print x,y,z
⑥z=z+1
⑦如果z<=12,则转步骤⑤,否则继续步骤⑧
⑧y=y+1
⑨如果y<=10,则转步骤④,否则继续步骤⑩
⑩x=x+1
如果x<= 8,则转步骤③,否则继续步骤
print t
具体程序:
t = 0
for x in range(1, 9):
for y in range(1, 11):
for z in range(1, 13):
if(6 * x + 5 * y + 4 * z == 50):
print(x,y,z)
t = t + 1
print(t)
循环的控制
break与continue
循环控制包含控制循环变量的变化方式和控制循环的跳转。无论是for循环还是while循环,都需要一个控制循环的变量来控制循环的执行。但是,有些循环仅靠循环变量自身的变化难以达到想要的效果,因此需要用到控制循环的跳转语句。实现控制循环的跳转需要用到break和continue两个关键字。其中,break是中断循环,continue是跳出本次循环体的执行。
例题
n!在什么时候大于10
break运用:
for循环:
s=1
for n in range(1,6):
s=s*n
print(“s=”,s,end=' ')
if(s>10):break
print(“n=”,n)
print(“n=”,n)
break运用:
while循环:
s=1;i=0
while(True):
i=i+1:s=s*i
print(“s=”,s,end=' ')
if(s>10):break
print(“n=”,n)
print(“n=”,n)
例题
n!在什么时候大于10
continue运用:
for循环:
s=1
for n in range(1,6):
s=s*n
print(“s=”,s,end=' ')
if(s>10):break
print(“n=”,n)
print(“n=”,n)
continue运用:
while循环:
s=1;i=0
while(True):
i=i+1:s=s*i
print(“s=”,s,end=' ')
if(s>10):break
print(“n=”,n)
print(“n=”,n)
例题
n!在什么时候大于10
break运行结果:
s= 1 n= 1
s= 2 n= 2
s= 6 n= 3
s= 24 n= 4
continue运行结果:
s= 1 n= 1
s= 2 n= 2
s= 6 n= 3
s= 24 s= 120 n= 5
循环的嵌套和控制