反復変数を変更しても後続の反復に影響しないのはなぜですか?
次の 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 サイトの他の関連記事を参照してください。