Maison  >  Article  >  développement back-end  >  Pourquoi les variables d'itération modifiées dans une boucle For n'affectent-elles pas les itérations suivantes ?

Pourquoi les variables d'itération modifiées dans une boucle For n'affectent-elles pas les itérations suivantes ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-23 17:06:13895parcourir

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

Pourquoi la modification des variables d'itération n'a-t-elle pas d'impact sur les itérations suivantes ?

Lorsque vous essayez d'ajuster les valeurs des variables de boucle interne, comme démontré dans le Python suivant code, un comportement inattendu peut en résulter :

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

Initialement, le résultat attendu ressemblerait à ceci :

0
1
2
3
4
8
9

Cependant, le résultat réel s'écarte des attentes :

0
1
2
3
4
8
6
7
8
9

En effet, une boucle for définit une portée distincte pour la variable d'itération dans chaque cycle d'itération. Une fois que vous modifiez la valeur de la variable de boucle, cela n'affecte que l'itération en cours sans aucun impact sur les itérations suivantes.

Pour obtenir le résultat souhaité, les structures de boucle alternatives offrent plus de polyvalence. Envisagez plutôt d'utiliser une boucle while :

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

    print(i)

    # Increment `i` manually
    i += 1

L'utilisation de cette approche garantit que les modifications apportées à la variable de boucle seront reflétées dans les itérations suivantes, fournissant ainsi le résultat souhaité que vous recherchiez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn