Regardez cet exemple:Quelle est la différence de déclaration d'une variable dans une boucle et avant la boucle?
int i;
for (i=1;i.......
et ceci:
for (int i=1;i........
Quelle est la différence entre eux?
Regardez cet exemple:Quelle est la différence de déclaration d'une variable dans une boucle et avant la boucle?
int i;
for (i=1;i.......
et ceci:
for (int i=1;i........
Quelle est la différence entre eux?
Le premier déclare la variable dans la portée en dehors de la boucle; Une fois la boucle terminée, la variable existera toujours et sera utilisable. Le second déclare la variable telle qu'elle appartient à la portée de la boucle; après la boucle, la variable cesse d'exister, empêchant la variable d'être utilisée par inadvertance ou par erreur. En C99, C++, Java, et d'autres langages similaires, vous trouverez principalement la deuxième syntaxe car elle est plus sûre - l'index de boucle appartient à la boucle et n'est pas modifié/partagé ailleurs.
Cependant, vous verrez beaucoup de ceux-ci dans le code C plus ancien, car ANSI C n'a pas permis à la variable de boucle d'être déclarée dans la boucle comme ça.
Pour donner un exemple:
int i;
// ... lots of stuff
for (i = 0; i < 5; i++){
printf("%d\n",i); // can access i; prints value of i
}
printf("%d\n",i); // can access i; prints 5
Par contre:
for (int i = 0; i < 5; i++){
std::cout << i << std::endl; // can access i; prints value of i
}
std::cout << i << std::endl; // compiler error... i not in this scope
merci Michael la réponse était vraiment instructive. – Nobody
Cela dépendra de la langue, que vous n'avez pas spécifié :-)
En C (et quelques autres), la portée (effectivement la durée dans ce cas) de la variable est différente. Dans le premier cas, la variable existe après la boucle car elle est déclarée en dehors de celle-ci. Dans ce dernier, il disparaît lorsque la boucle se termine car son existence est "à l'intérieur" du corps de la boucle.
merci pour la réponse paxdiablo. – Nobody
Cela dépend, dans une certaine mesure, de la langue. – Quentin