human
( ou 16 ) : boucles For et while en programmation . Je ne les comprends pas du tout. Je ne comprends pas non plus la différence entre eux. Explique comme si j'avais cinq ans.
gpt
Commençons par les boucles `while` parce qu'elles sont plus simples. Une boucle ` while ` n'a besoin que d' un bit d' information que nous appellerons la * * condition * * et prend la forme while ( condition ) { DoStuff ( ) ; } Lorsque le code rencontre votre boucle ` while ` , il vérifie la condition . Si la condition est vraie ( ou s'évalue à une valeur vraie ) , le programme exécute le code entre les accolades : ` DoStuff ( ) ` dans ce cas . Après l'exécution, il vérifie à nouveau la condition. Finalement^ * , ou même à la première vérification , la condition sera fausse . Lorsque cela se produit, nous arrêtons d'exécuter le code entre les accolades et continuons après la boucle. Les boucles ` for ` semblent plus difficiles , mais quand vous les comprenez , elles peuvent être tout aussi simples . Notre boucle ` for ` a besoin de trois bits d'information : un * * initialiseur * * , une * * condition * * et quelque chose que j'appellerai le * * incrémenteur**^ * * . Il prend la forme suivante : for (initialisateur ; condition ; incrémenteur) { DoStuff() ; } Comme je l'ai dit, l'exécution est plus simple qu'il n'y paraît. Tout d'abord, avant de regarder la condition, nous allons exécuter l'initialiseur. Nous l'utiliserons généralement pour configurer les variables utilisées pour notre boucle. Une fois cela fait , nous vérifierons la condition , comme dans la boucle ` while ` . S'il est évalué à vrai , nous ferons des choses . La grande différence est qu'avant de vérifier à nouveau la condition, nous allons exécuter notre incrémenteur. Ensuite , toujours comme la boucle ` while ` , nous vérifions à nouveau la condition jusqu'à ce qu'elle soit fausse . Vous remarquerez peut-être que les deux types de boucles sont très similaires. En fait, il est toujours possible d'écrire une boucle comme l'autre. Ceci : pour ( int je = 0 ; je < 10 ; je = je + 1 ) { print(i ) ; } est identique à ceci : int i = 0 ; tandis que ( je < 10 ) { print(i ) ; je = je + je ; } Le contraire est également vrai ( ` for (; condition ;) { } ` est un code légal ) , mais il est très peu probable que vous voyiez ce code . Puisque les deux boucles sont interchangeables , la différence est surtout une tradition : quand vous connaissez le nombre de fois que vous voulez exécuter ( par exemple , quand vous calculez une moyenne ) vous voudrez utiliser une boucle ` for ` parce que la syntaxe rend le incrémentation explicite. Lorsque vous ne pouvez pas connaître le nombre à l'avance, vous devez utiliser une boucle `while`. * Je dissimule ici les boucles infinies , où la condition n'est jamais fausse , que ce soit intentionnellement ou à cause d' un bogue * * C'est techniquement un terme impropre . Alors que le troisième argument d'une boucle for incrémente généralement une variable, il peut faire n'importe quoi. Il est considéré comme extrêmement mauvais de l'utiliser pour des raisons étranges.