声明:本文由本小白分析【多篇】代码而出,如有错误,感谢指出!
^ ^ (可靠)
下方分析过程极其详细,但比较长,若无法理解,可以参考。
一、答案
break和continue都是针对while或for循环的,无论多少个if(没有也行)也与其无关。
下面以图片和代码模板理解。
1、图片
(不管if,与其无关)
2、代码模板(以while为例)
3、理解
break相当于使while循环的条件不成立,从而退出while
continue相当于注释掉其以下在while内的代码,从而再次循环
注意:若需同时使用def和while时,while要在内:
正确:
def a():
while True:
return 1/1
break
print(a())
错误:
while True:
def a():
return 1/1
break
print(a())
二、分析过程(以while为例)
当一段代码有缺陷,下一段便可以解决。
1、break
(1)
a=1
while a<10:
a+=1
if a==4:
break
print(a)
print(a)
结果:
2
3
4
分析:
第三行:a=2
第六行:打印a=2
返回第二行
第三行:a=3
第六行:打印a=3
返回第二行
第三行:a=4
第四行:进入if
第五行:跳出当前while,进入第七行
第七行:打印a=4
缺陷:不知是否是跳出所有while
(2)
a=1
while a!=0:
a+=1
while a<10:
a+=1
if a==4:
break
print(a)
print('……')
break
print(a)
结果:
3
……
4
分析:
第三行:a=2
第五行:a=3
第八行:打印a=3
返回第四行
第五行:a=4
第六行:进入if
第七行:跳出while(2),进入第九行
第九行:打印 ……
第十行:跳出while(1),进入第十行
第11行:打印a=4
缺陷:不知if对其有何影响
(3)
a=1
while a==1:
print('^_^')
break
print('T_T')
print(': )')
结果:
^_^
: )
分析:
第三行:打印 ^_^
第四行:跳出当前while,转到第六行
第六行:打印 : )
缺陷:不知多个if对其有何影响
(4)
a=1
while a!=0:
a+=1
while a<10:
a+=1
if a==4 or a==5:
if a==5:
break
print(': P')
print(a)
print('……')
break
print(a)
结果:
3
: P
4
……
5
分析:
第三行:a=2
第五行:a=3
第十行:打印a=3
返回第四行
第五行:a=4
第六行:进入if(1)
第九行:打印: P
第十行:打印a=4
返回第四行
第五行:a=5
第六行:进入if(1)
第七行:进入if(2)
第八行:跳出while(2),进入第11行
第11行:打印 ……
第12行:跳出while(1),进入第13行
第11行:打印a=5
得出答案
2、continue
本版块与break做对比,仅将所有break替换为continue
(1)
a=1
while a<10:
a+=1
if a==4:
continue
print(a)
print(a)
结果:
2
3
5
6
7
8
9
10
10
分析:
第三行:a=2
第六行:打印a=2
返回第二行
第三行:a=3
第六行:打印a=3
返回第二行
第三行:a=4
第四行:进入if
第五行:回到while开头,进入第二行
第三行:a=5
第六行:打印a=5
返回第二行
重复以上加粗部分,分别打印a=6,a=7,a=8,a=9
第三行:a=10
第六行:打印a=10
返回第二行,由于a<10不成立,退出循环,进入第七行
第七行:打印a=10
缺陷:不知是否是跳出所有while
(2)
a=1
while a!=0:
a+=1
while a<10:
a+=1
if a==4:
continue
print(a)
print('……')
continue
print(a)
结果:
3
5
6
7
8
9
10
……
……
……
(无限循环)
分析:
第三行:a=2
第五行:a=3
第八行:打印a=3
返回第四行
第五行:a=4
第六行:进入if
第七行:回到while(2)开头,进入第四行
第五行:a=5
第八行:打印a=5
返回第四行
重复以上加粗部分,分别打印a=6,a=7,a=8,a=9
第五行:a=10
第八行:打印a=10
返回第四行,由于a<10不成立,退出while循环,进入第九行
第九行:打印 ……
第十行:回到while(1)开头,进入第二行
第三行:a赋值(a等于多少已不重要,只需a<10不成立)
第九行:打印 ……
第十行:回到while(1)开头,进入第二行
重复以上加粗部分,导致无限循环(打印 ……)
缺陷:不知if对其有何影响
(3)
a=1
while a==1:
print('^_^')
continue
print('T_T')
print(': )')
结果:
^_^
^_^
^_^
(无限循环)
分析:
第三行:打印 ^_^
第四行:回到while开头,转到第二行
第三行:打印 ^_^
重复以上加粗部分,导致无限循环(打印 ^_^)
缺陷:不知多个if对其有何影响
(4)
a=1
while a!=0:
a+=1
while a<10:
a+=1
if a==4 or a==5:
if a==5:
continue
print(': P')
print(a)
print('……')
continue
print(a)
结果:
3
: P
4
6
7
8
9
10
……
……
……
(无限循环)
分析:
第三行:a=2
第五行:a=3
第十行:打印a=3
返回第四行
第五行:a=4
第六行:进入if(1)
第九行:打印: P
第十行:打印a=4
返回第四行
第五行:a=5
第六行:进入if(1)
第七行:进入if(2)
第八行:回到while(2)开头,进入第四行
第五行:a=6
第十行:打印a=6
回到while(2)开头,进入第四行
重复以上加粗部分,分别打印a=7,a=8,a=9
第五行:a=10
第十行:打印a=10
返回第四行,由于a<10不成立,退出while循环,进入第11行
第11行:打印 ……
第12行:回到while(1)开头,进入第二行
第三行:a赋值(a等于多少已不重要,只需a<10不成立)
第11行:打印 ……
第12行:回到while(1)开头,进入第二行
重复以上加粗部分,导致无限循环(打印 ……)
得出答案
end
声明:本文由本小白分析【多篇】代码而出,如有错误,感谢指出!
^ ^ (可靠)
================================答案在最上方===============================