Dans le fonctionnement logique de JavaScript, une petite question sur --c et c--.
正歌
正歌 2018-03-26 17:19:17
0
5
1732

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 !

正歌
正歌

répondre à tous(4)
一切近乎完美

--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.


 

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 Merci, j'ai compris.
    正歌 auteur 2018-03-27 11:08:21
一生何求

--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

正歌

<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


Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal