Maison > Questions et réponses > le corps du texte
var z = 0;
z=z=z++;
alert(z);
La fenêtre pop-up est à 0, pourquoi ?
Suivez
var z = 0;
z++;z=z;
alert(z);
La différence ?
高洛峰2017-07-05 10:52:36
Je suis curieux de savoir si vous faites cela pour faire des questions ou si vous avez vu l'auteur utiliser cette méthode d'écriture dans le code d'un projet open source. Si c'est pour faire des questions ou des tests écrits, je vous suggère de ne pas envisager une telle méthode. école ou entreprise. Parce que cette question n'a aucun sens, Swift3 supprime même l'opérateur ++ La vie est courte et cela ne vaut pas la peine de perdre du temps sur des fonctionnalités de syntaxe déroutantes ou sujettes aux erreurs.
大家讲道理2017-07-05 10:52:36
Deux points :
a = a++ est attribué en premier puis incrémenté
L'expression d'affectation a une valeur de retour, appelée valeur de l'expression
z=z=z++;
Cela équivaut à attribuer la valeur de l'expression "z=z++" à z, et la valeur de "z=z++" est égale à "z++". "z++" utilise d'abord la valeur actuelle de z puis l'incrémente
给我你的怀抱2017-07-05 10:52:36
Post-incrémentation : une expression comme
n++ renverra une copie de la valeur originale de n, puis la valeur originale de n++
n = n++ La priorité de l'opérateur post-incrémentation est supérieure à celle de l'affectation
Donc le. le côté droit de = incrémentera d'abord n et renverra une copie de la valeur originale de n
Effectuez ensuite une opération d'affectation pour attribuer la valeur originale de n à n, afin que la valeur de n reste inchangée
阿神2017-07-05 10:52:36
La logique de
z++
是个表达式,表达式的结果还是z
,所以 z=z++
相当于z=z
啥也没做,
你要了解下 z++
est de renvoyer d'abord la valeur de la variable, puis de l'incrémenter.
Ou vous pouvez utiliser ++z
, le pré-incrémentation consiste à vous incrémenter d'abord, puis à renvoyer le résultat après l'auto-incrémentation
阿神2017-07-05 10:52:36
++ et = problèmes avec l'ordre des opérations Il est recommandé de jeter un œil à la priorité d'opération et d'affectation
.