python中continue与break的区别

声明:本文由本小白分析【多篇】代码而出,如有错误,感谢指出!

                                            ^  ^       (可靠)

下方分析过程极其详细,但比较长,若无法理解,可以参考。

一、答案

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

声明:本文由本小白分析【多篇】代码而出,如有错误,感谢指出!

                                            ^  ^       (可靠)

================================答案在最上方===============================

猜你喜欢

转载自blog.csdn.net/Careful_S/article/details/128384788
今日推荐