ホームページ >バックエンド開発 >Python チュートリアル >For ループ内で変更された反復変数が後続の反復に影響しないのはなぜですか?

For ループ内で変更された反復変数が後続の反復に影響しないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-23 17:06:131006ブラウズ

Why Do Modified Iteration Variables in a For Loop Not Affect Subsequent Iterations?

反復変数を変更しても後続の反復に影響しないのはなぜですか?

次の Python で示すように、内部ループ変数値を調整しようとするとコードを実行すると、予期しない動作が発生する可能性があります:

for i in range(0, 10):
    if i == 5:
        i += 3
    print(i)

当初は、予期した出力は次のようになります:

0
1
2
3
4
8
9

ただし、実際の結果は期待とは異なります:

0
1
2
3
4
8
6
7
8
9

これは、for ループが各反復サイクル内で反復変数の個別のスコープを定義しているためです。 。ループ変数の値を変更すると、現在の反復にのみ影響し、後続の反復には影響しません。

意図した出力を実現するには、代替ループ構造を使用することでより汎用性が高くなります。代わりに while ループの使用を検討してください。

i = 0
while i < 10:
    # Manipulate `i` as desired
    if i == 5:
        i += 3

    print(i)

    # Increment `i` manually
    i += 1

このアプローチを利用すると、ループ変数への変更が後続の反復に確実に反映され、求めた望ましい出力が得られます。

以上がFor ループ内で変更された反復変数が後続の反復に影響しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。