recherche

Maison  >  Questions et réponses  >  le corps du texte

Dans le fonctionnement logique de JavaScript, une petite question sur --c et c--.

Le professeur Han a dit :

<script type=text/javascript>

var a = 3;

var b = 4;

var c = 1;

if ( a < b && --c && ++a)

{

window.alert("OK")

}

window.alert(c) // c = 0

window.alert(a) // a =3

que si "--c" est remplacé par "c--"", la valeur de c est également 0. Pourquoi la valeur d'un changement passe-t-elle à 4 ?

J'espère que les enseignants pourront répondre à cette question, merci !

正歌正歌2435 Il y a quelques jours1704

répondre à tous(5)je répondrai

  • 一切近乎完美

    一切近乎完美2018-03-28 15:24:52

    --c est calculé d'abord puis attribué à c, c'est-à-dire tuez d'abord et faites un rapport plus tard. Lorsque vous le tuez, l'empereur ne le sait pas encore et pense qu'il n'est pas encore mort, donc c est toujours le c d'origine. Ce n'est qu'après avoir signalé qu'il sait qu'il est déjà mort, c'est réduit de un à ce moment.

    Et c-- est attribué à c après soustraction. À cette époque, c était un de moins, ce qui signifie que l'empereur a personnellement supervisé l'exécution.


    répondre
    1
  •  

     2018-03-27 10:57:45

    Pour --c

    a < b true

    --c c décrémente d'abord c=0 false (0 est faux, non-0 est vrai)

    a<b&&--c false puis && sera déclenché "Court circuit" n'exécute pas ++a

    all c=0, a=3

    for c--

    a < b true

    c-- c détermine d'abord vrai et faux puis se décrémente, c=1 car tous les jugements sont vrais Alors c décrémente

    a<b&&--c True ne déclenchera pas le "court-circuit" de && Exécuter et juger ++a

    Donc c=0, a=4

    répondre
    1
  • 正歌

    Merci, j'ai compris.

    正歌 · 2018-03-27 11:08:21
  • 一生何求

    一生何求2018-03-26 21:13:25

    --En c++, le côté gauche de l'expression est faux, et ++a sur le côté droit n'effectue pas d'opérations, donc la valeur de a est toujours 3

    Quand c++, le côté gauche de l'expression est vrai, donc ++a sur le côté droit doit encore effectuer des opérations, donc la valeur de a La valeur devient 4

    répondre
    2
  • 正歌

    正歌2018-03-26 19:48:14

    <script type=text/javascript>

    var a = 3;

    var b = 4;

    var c = 1;

    if ( a < b && c-- && ++a);/ /À ce stade, la valeur de c est également 0, ce qui devrait également être faux. ++a ne doit pas être calculé, donc la valeur de a doit toujours être 3. Pourquoi est-elle calculée ?

    {

    window.alert("OK")

    }

    window.alert(c) // c = 0

    window.alert(a) // a =3


    répondre
    0
  • Annulerrépondre