内容正文:
2.3周而复始的循环
——break、continue语句
break、continue语句
功能:
break:彻底结束整个循环,跳出循环体,后面的循环不再执行
注:需结合if语句使用,根据特定条件改变循环过程,没有条件判断则可能无意义。
continue:跳过本次循环的剩余代码,跳到循环开头
break、continue语句搭配for循环
range(start, stop, step)
起始 结束 步长
1.range(stop):起始和步长都省略,默认从0开始,生成从 0 到 stop-1 的整数序列,比如range(5)生成的是 0 1 2 3 4
3.range(start, stop, step):生成从 start 到 stop-1 的整数序列,步长为 step,比如range(5,0,-1),步长就是-1,生成的是5 4 3 2 1
2.range(start, stop):只省略步长,默认步长为1,生成从 start 到 stop-1 的整数序列,比如range(0,5)生成的是0 1 2 3 4
复习range()函数:
break、continue语句搭配for循环
for i in range(11):
if i==5: #如果i的值为5,
break #则结束整个循环
print(i,end=””)
for i in range(11):
if i==5: #如果i的值为5,
continue #则跳过这次循环,不执行下面的print
print(i,end=””)
结果:只输出0 1 2 3 4(遇到5就停止循环,后面的6-10都不会执行)
结果:输出 0 1 2 3 4 6 7 8 9 10 (5被跳过了,但循环继续执行到10)
输出0-10内的数字,遇到5则停止循环——break
输出0-10内的数字,遇到5则跳过——continue
注:“==”与“=”的区别:
==是做判断的,判断是否相等
=是赋值,变数据赋值给变量
break、continue语句搭配for循环
for i in rang(11):
if i==5: #如果i的值为5,
break #则结束整个循环
print(i,end=””)
for i in rang(11):
if i==5: #如果i的值为5,
continue #则跳过这次循环,不执行下面的print
print(i,end=””)
i=0,判断i是不是等于5,i=0,不等于5,则输出0
i=1,不等于5,所以输出1
...
i=5,等于5,continue,结束跳过这次循环,不执行下面的print,跳到循环开头
i=6,不等于5,输出6
...
i=0,判断i是不是等于5,i=0,不等于5,则输出i,输出0
i=1,不等于5,所以输出1
...
i=5,等于5,break,结束整个循环
循环过程:
break、continue语句搭配while循环
i = -1
while i < 10:
i = i + 1 #注:continue前要更新i,否则得不到正确结果
if i == 5: # 如果 i 等于 5
continue # 则跳过这次循环,不执行下面的print(i)
print(i, end=" ")
i = 0
while i <=10:
if i == 5: # 如果 i 等于 5
break # 则结束整个循环
print(i, end=" ")
i = i + 1
结果:只输出0 1 2 3 4(遇到5就停止循环,后面的6-10都不会执行)
输出0-10内的数字,遇到5则跳过——continue
#0也要输出,所以初始值为-1
输出0-10内的数字,遇到5则停止循环——break
结果:输出 0 1 2 3 4 6 7 8 9 10 (5被跳过了,但循环继续执行到10)
break、continue语句搭配while循环
i = -1
while i < 10:
i = i + 1 # 注意:continue前要更新i
if i == 5: # 如果 i 等于 5
continue # 则跳过这次循环,不执行下面的print(i)
print(i, end=" ")
i = 0
while i < =10:
if i == 5: # 如果 i 等于 5
break # 则结束整个循环
print(i, end=" ")
i = i + 1
i=0, 不等于5 → 输出0 → i=1
i=1, 不等于5 → 输出1 → i=2
i=2, 不等于5 → 输出2 → i=3
i=3, 不等于5 → 输出3 → i=4
i=4, 不等于5 → 输出4 → i=5
i=5, 等于5 → break → 整个循环结束(i=5没有输出,后面的i=6,7,8,9,10也都不再执行)
i=0 → i=i+1=1, 不等于5 → 输出1
i=1 → i=i+1=2, 不等于5 → 输出2
...
i=4 → i=i+1=5, 等于5 → continue → 跳过print,回到循环开头,不会输出5
i=5 → i=i+1=6, 不等于5 → 输出6
...
i=9 → i=i+1=10, 不等于5 → 输出10
i=10 → 条件 i<10 不成立,循环结束
循环过程:
break、continue语句搭配while循环
i = -1
while i < 10:
if i == 5: # 如果 i 等于 5
continue # 则跳过这次循环,不会执行下面的print()和i=i+1语句
print(i, end=" ")
i = i + 1
i=-1 → 不等于5 → 输出-1,i=i+1=0
i=0 → 不等于5 → 输出0,i=i+1=1,
...
i=5→ 等于5 → continue → 则跳过print和i=i+1,那么i的值则不会变为6,也就无法得到6、7、8、9、10,输出的结果为0 1 2 3 4,无法得到正确的结果
因此,i=i+1必须放在continue之前!
如果i=i+1放在continue之后:
循环过程:
练习
课堂练习
1、i=1
while i<=10:
if i%2==0:#如果i的值是2的倍数
break
print(i,end=””)
i=i+1
最终输出的所有i为( )
A.0 1 2 3 4 5
B.1 2
C.1
D.1 2 3 4 5
%是取余数
i%2意思就是i对2取余数
如果i是2的倍数,那i一定能整除2,那么余数为0,因此i%2的结果为0
所以,i%2==0可以用来判断i是不是2的倍数,比如2%2的值为0,0==0
同样的,如果是判断是否是5的倍数,则if i%5==0
c
练习
课堂练习
2、for i in range(1,11):
if i%5==0:#如果i的值是5的倍数
continue
print(i,end=””)
最终输出的所有i为( )
A.1 2 3 4 6 7 8 9
B.1 2 3 4
A
range(1,11)生成1,2,3,...,10
①i=1<10成立,判断1是否是5的倍数,不是,输出1
②i=2<10成立,判断2是否是5的倍数,不是,输出2
...
⑤i=5<10成立,判断5是否是5的倍数,是,continue,跳过
....
⑩i=9<10成立,判断5是否是5的倍数,是,continue,跳过
因此最终输出的所有i为1 2 3 4 6 7 8 9
C.1 2 3 4 6 7 8 9 10
D.1 2 3 4 5
课堂练习
1、要求输出1-20以内的数字,遇到7则停止。
2、输出1-50内的数字,但是遇到是7的倍数则跳过不输出。
m=0
while m<100:
m=m+1
if m%7==0:
continue
print(m)
i=1
while i<20:
if i==7:
break
print(i)
i=i+1
$