[ Web Proxy ]
URL:
Viewing: https://fr.javascript.info/task/which-value-while [Back]  [Original]

Quelles valeurs affiche la boucle while ?
FR

Nous souhaitons rendre ce projet open source disponible pour les gens du monde entier.

Aidez-nous traduire le contenu de ce tutoriel dans votre langue!

    Rechercher sur Javascript.info:
    Rechercher dans le tutoriel:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
    retour au cours

    Quelles valeurs affiche la boucle while ?

    importance: 4

    A votre avis, quelles sont les valeurs affiches pour chaque boucle ? Notez-les puis comparer avec la rponse.

    Les deux boucles affichent-elles les mmes valeurs dans lalert ou pas ?

    1. Le prfixe sous forme ++i :

      let i = 0;
      while (++i < 5) alert( i );
    2. Le postfixe sous forme i++ :

      let i = 0;
      while (i++ < 5) alert( i );
    solution

    Lexercice montre comment les formes postfix/prefix peuvent conduire des rsultats diffrents lorsquils sont utiliss dans des comparaisons.

    1. De 1 4

      let i = 0;
      while (++i < 5) alert( i );

      La premire valeur est i=1, parce que ++i incrmente dabord i puis renvoie la nouvelle valeur. La premire comparaison est donc 1 < 5 et alert indique 1.

      Ensuite, viennent 2,3,4 les valeurs apparaissent les unes aprs les autres. La comparaison utilise toujours la valeur incrmente, car ++ est avant la variable.

      Enfin, i=4 est incrment 5, la comparaison while(5 < 5) choue et la boucle sarrte. Donc 5 nest pas affich.

    2. De 1 5

      let i = 0;
      while (i++ < 5) alert( i );

      La premire valeur est encore i=1. La forme postfixe de i++ incrmente i puis renvoie lancienne valeur, la comparaison i++ < 5 utilisera donc i=0 (contrairement ++i < 5).

      Mais lappel dalert est spar. Cest une autre instruction qui sexcute aprs lincrmentation et la comparaison. Donc, on obtient i=1.

      Ensuite viennent 2,3,4

      Arrtons-nous sur i=4. Le prfixe sous forme ++i lincrmenterait et utiliserait 5 dans la comparaison. Mais ici nous avons la forme postfixe i++. Donc, i augmente 5, mais renvoie lancienne valeur. Par consquent, la comparaison est en ralit while(4 < 5) true, et le contrle continue alert.

      La valeur i=5 est la dernire, car ltape suivante while(5 <5) est faux.


    Web Proxy Viewer  |  New URL  |  Original Page