Pythonの続行と中断の違い

免責事項: この記事は Xiaobai による [複数の記事] のコードの分析に基づいています。間違いがある場合は、ご指摘いただきありがとうございます。

                                            ^ ^ (信頼できる)

以下の分析プロセスは非常に詳細ですが、比較的長いので、理解できない場合は参照してください。

1. 答え

Break と continue は両方とも for while ループまたは for ループであり、if の数 (またはなし) に関係なく、それとは何の関係もありません。

以下は画像とコードテンプレートで理解できます。

1.写真

 (かどうかは関係ありませんが)

2. コードテンプレート (while を例として取り上げます)

3. 理解する

Break は、while ループの条件を true ではなくすることと同じなので、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())

2 番目に、分析プロセス (while を例として取り上げます)

1 つのコードに欠陥がある場合、次のコードで修正できます。

 1、休憩

(1)

a=1
while a<10:
    a+=1
    if a==4:
        break
    print(a)
print(a)

結果:

2
3
4

分析します:

3行目: a=2

6行目: a=2を出力します

2行目を返す

3 行目: a=3

6行目: a=3を出力します

2行目を返す

3行目: a=4

4行目: ifを入力

5 行目: 現在の while から飛び出して 7 行目に入る

7行目: a=4を出力します

欠点:飛び出すかどうかは分かりません

(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

分析します:

3行目: a=2

5行目: a=3

8行目: print a=3

4行目を返す

5行目: a=4

6行目: ifを入力

7 行目: while(2) からジャンプして 9 行目に入る

9行目: 出力します...

10 行目: while(1) からジャンプして 10 行目に入る

11行目: a=4を出力します

欠点:どう影響するか分からない

(3)

a=1
while a==1:
    print('^_^')
    break
    print('T_T')
print(': )')

結果:

^_^
: )

分析します:

3行目: print ^_^

4 行目: 現在の while を抜けて 6 行目に移動します。

6行目: 印刷:)

欠点: 複数の 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

分析します:

3行目: a=2

5行目: a=3

10 行目: a=3 を出力します

4行目を返す

5行目: a=4

6行目: if(1)と入力します。

9行目: 印刷: P

10 行目: a=4 を出力します

4行目を返す

5行目: a=5

6行目: if(1)と入力します。

7行目: if(2)と入力します。

8 行目: while(2) から抜けて 11 行目に入る

11行目: 出力します...

12 行目: while(1) から抜け出して 13 行目に入る

11行目: a=5を出力します

答えを得る

2、続ける

このセクションは 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

分析します:

3行目: a=2

6行目: a=2を出力します

2行目を返す

3 行目: a=3

6行目: a=3を出力します

2行目を返す

3行目: a=4

4行目: ifを入力

5行目:whileの先頭に戻って2行目を入力

3行目: a=5

6行目: a=5を出力します

2行目を返す

上記の太字部分を繰り返し、a=6、a=7、a=8、a=9 をそれぞれ出力します。

3行目: a=10

6行目: a=10を出力

2 行目に戻ります。a<10 は true ではないため、ループを終了して 7 行目に入ります。

7行目: a=10を出力

欠点:飛び出すかどうかは分かりません

(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
……
……
……
(无限循环)

分析します:

3行目: a=2

5行目: a=3

8行目: print a=3

4行目を返す

5行目: a=4

6行目: ifを入力

7行目:while(2)の先頭に戻り、4行目を入力します。

5行目: a=5

8行目: a=5を出力

4行目を返す

上記の太字部分を繰り返し、a=6、a=7、a=8、a=9 をそれぞれ出力します。

5行目: a=10

8行目: a=10を出力

4 行目に戻ります。a<10 は true ではないため、while ループを終了して 9 行目に入ります。

9行目: 出力します...

10行目:while(1)の先頭に戻り、2行目を入力します。

3 行目: 代入 (a<10 が true でない限り、a がどれだけ等しいかは関係ありません)

9行目: 出力します...

10行目:while(1)の先頭に戻り、2行目を入力します。

上記の太字部分を繰り返すと、無限ループ (印刷...) が発生します。

欠点:どう影響するか分からない

(3)

a=1
while a==1:
    print('^_^')
    continue
    print('T_T')
print(': )')

結果:

^_^
^_^
^_^
(无限循环)

分析します:

3行目: print ^_^

4行目:whileの先頭に戻って2行目へ

3行目: print ^_^

上記の太字部分を繰り返すと、無限ループが発生します (print ^_^)

欠点: 複数の 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
……
……
……
(无限循环)

分析します:

3行目: a=2

5行目: a=3

10 行目: a=3 を出力します

4行目を返す

5行目: a=4

6行目: if(1)と入力します。

9行目: 印刷: P

10 行目: a=4 を出力します

4行目を返す

5行目: a=5

6行目: if(1)と入力します。

7行目: if(2)と入力します。

8行目:while(2)の先頭に戻り、4行目を入力します。

5行目: a=6

10 行目: a=6 を出力します

while(2)の先頭に戻り、4行目を入力します。

上記の太字部分を繰り返し、それぞれ a=7、a=8、a=9 を出力します。

5行目: a=10

10 行目: a=10 を出力します。

4 行目に戻ります。a<10 は true ではないため、while ループを終了して 11 行目に入ります。

11行目: 出力します...

12行目:while(1)の先頭に戻り、2行目を入力します。

3 行目: 代入 (a<10 が true でない限り、a がどれだけ等しいかは関係ありません)

11行目: 出力します...

12行目:while(1)の先頭に戻り、2行目を入力します。

上記の太字部分を繰り返すと、無限ループ (印刷...) が発生します。

答えを得る

終わり

免責事項: この記事は Xiaobai による [複数の記事] のコードの分析に基づいています。間違いがある場合は、ご指摘いただきありがとうございます。

                                            ^ ^ (信頼できる)

===================================答えは一番上にあります ========= ====== ==================

おすすめ

転載: blog.csdn.net/Careful_S/article/details/128384788