Maison > Java > javaDidacticiel > le corps du texte

Pourquoi j = j attribue-t-il 0 à j en Java ?

DDD
Libérer: 2024-10-27 03:26:29
original
477 Les gens l'ont consulté

Why does j = j   assign 0 to j in Java?

Opérateur de post-incrémentation en Java

Question :

Dans l'extrait de code ci-dessous, pourquoi l'opérateur de post-incrémentation j attribue-t-il 0 à j ?

public class Test {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++) {
            j = j++;
        }
        System.out.println(j); // prints 0
    }
}
Copier après la connexion

Selon l'auteur du livre "Java Puzzlers", l'instruction j = j est similaire à la séquence suivante :

temp = j;
j = j + 1;
j = temp;
Copier après la connexion

Cependant, l'instruction a = b attribue à b la valeur 1, ce qui contredit le comportement attendu de l'opérateur de post-incrémentation.

Réponse :

L'erreur dans l'argument consiste à appliquer la règle de l'incrément puis à attribuer à a = b mais pas à j = j . La séquence correcte d'opérations pour a = b est :

temp = b;
b = b + 1; // increment
a = temp; // assign
Copier après la connexion

En appliquant la même règle à j = j , nous obtenons :

j = j;
j = j + 1; // increment
Copier après la connexion

Comme la valeur initiale de j était 0, l'opérateur post-incrément renvoie 0 car la valeur de j avant l'incrément est utilisée dans l'expression.

Par conséquent, la valeur finale de j est 0 car l'instruction d'affectation est évaluée à j = 0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!