-1
votes

Opérations java de base difficiles

J'ai reçu ces 2 codes différents en Java que je ne comprends pas comment ils produisent ces sorties spécifiques.

Ils semblaient travailler dans 2 logiques différentes et je ne peux pas le comprendre! xxx

et xxx p > Comment chaque situation fonctionne-t-elle et comment produisent-ils ces sorties spécifiques?


3 commentaires

Vous devriez vérifier la différence entre le poste et le pré-augmentation avant


Pas une dupe, comme cela dépend de la manière dont a - = x et ++ a interagit. Le point clé semble être la réécriture a - = x comme a = a -x arrive avant un opérateur de pré-augmentation.


Je n'étais pas sûr de poser cette question simple mais je me suis vraiment lutté avec cela, et je ne savais pas quoi chercher sur Google parce que je sais déjà comment incrément, décrémentation, pré et post travail, donc j'ai décidé de demander à ma dernière solution. Avant de les demander ici et que je jouais toujours avec ces opérations que j'ai posté, dans mon esprit et pour une raison quelconque, j'étais sûr que j'essayais B ++ et (B ++) et j'ai réalisé que (B ++) agit comme ++ B, cependant , J'étais certainement tort. Mais merci pour la réponse rapide de tout le monde surtout Nexevis.


5 Réponses :


2
votes

La principale différence ici est ce que post et pré augmente. Celles-ci déterminent si la valeur est augmentée avant l'évaluation ou par la suite.

Voici comment le premier cas se casse mathématiquement:

A = 5 - (4 + 6) , qui réduit à -5 .

Notez que A est augmenté de ++ a AKA préincrement avant le calcul est terminé, cependant < Code> B est calculé comme 4 . Une autre chose à noter est le A utilisé à partir du - = utilise le original une valeur , quel que soit leur poteau ou prérémentation avant.

La deuxième équation se réduit à cette mathématique:

c = 8 + 9 qui réduit à 17 .

La sortie imprime 18 car votre system.out.print (++ c) incrémente une fois de plus avant la sortie en raison de la préinprême. Remarque Si l'instruction Imprimer EXPUTE UTILISÉE C ++ , la valeur imprime sur 17 .

Le tableau de la précédente de l'opérateur peut être trouvé ici . Notez que l'affectation a une priorité inférieure à celle des opérateurs unaires / postfix.


0 commentaires

0
votes

Il est équivalent à:

int a = 5;
int b = 4;
a -= (b++) + ++a; // => 5 -= (4) + 6
int c = 8;
c += ++c; // => 9 += 9


0 commentaires

0
votes

Il y a une différence dans l'ordre de ++. Alors que les deux augmentent la variable, ++ A passera la valeur initiale à la chaîne d'opération, votre au milieu de; Pendant que A ++ réussirait la nouvelle valeur. Donc, pour votre premier exemple: xxx

(vous devez avoir suffisamment pour tracer le deuxième exemple).

pour une liste d'opérations Essayez Ce . Certains autres exemples d'incrément sont Ici .


0 commentaires

1
votes

C'est tout sur le PRECÉDENCE DE L'OPLOIRE en Java. Vérifiez que la table et déterminez quelle opération a lieu d'abord et quelle dernière.


0 commentaires

0
votes

Un exemple minimal est `

x = ( 3 + (++x))
x = ( 3 +  4 )       x is 4
x = 7                x is 7


0 commentaires