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

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

Barbara Streisand
リリース: 2024-11-23 17:06:13
オリジナル
989 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート