Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Les opérateurs ++ et --

Manipulation des types entiers Utilisation des opérateurs binaires



Accès rapide :
La vidéo
Utilisation préfixée des opérateurs ++ et --
Utilisation postfixée des opérateurs ++ et --

La vidéo

Cette vidéo vous montre comment utiliser les deux formes (préfixée et postfixée) des opérateurs ++ et -- en Java.


Les opérateurs ++ (incrément) et -- (décrément)

Utilisation préfixée des opérateurs ++ et --

Le langage Java offre des opérateurs d'incrémentation et de décrémentation de variables entières. Ces opérateurs sont en fait repris du langage C et les même règles d'utilisations vous sont proposées.

L'opérateur ++ permet d'incrémenter (ajouter 1 à la valeur courante) le contenu d'une variable. De même, l'opérateur -- permet de décrémenter (retirer 1 à la valeur courante) le contenu d'une variable. Dans les deux cas, ces opérateurs peuvent être utilisés en notation préfixée ou bien en notation postfixée. Nous allons commencer par étudier la forme préfixée de ces opérateurs.

Le moyen le plus simple d'utiliser ces opérateurs consiste à les employer seuls au niveau de l'instruction en cours. Voici un premier exemple simple d'utilisation.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
public class Demo {

    public static void main( String [] args ) {
    
        int value = 10;                 // On démarre avec une variable initialisée à 10;
        ++value;                        // Cette instruction se contente d'incrémenter value de 1
        System.out.println( value );    // Affiche 11
        
        --value;                        // Cette instruction se contente de décrémenter value de 1
        System.out.println( value );    // Affiche 10
        
        // Un autre exemple, on fait une boucle de 0 à 9
        for( int i=0; i<10; ++i ) {
            System.out.println( "i == " + i );
        }
    }
    
}
Utilisation simple des ces opérateurs en forme préfixée
nous reviendrons plus en détail sur la boucle for dans un futur chapitre de ce tutoriel.

Maintenant, il faut comprendre qu'on parle d'opérateurs. Un opérateurs, en programmation, est une construction systaxique qui se doit de calculer une valeur. En conséquence un ++value calcul un résultat : à savoir la nouvelle valeur après l'incrément. Il est donc possible d'utiliser ce résultat dans une sur-expression. Regardez attentivement cette exemple.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
public class Demo {

    public static void main( String [] args ) {
    
        int first = 10;
        int second = 20;
        int result = ++first + ++second;
        
        System.out.println( result );   // Affiche 32
    
    }
    
}
Utilisation d'un ++ dans une expression

Comme nous utilisons la forme préfixée de l'opérateur ++, le compilateur va produire un code machine qui commence par incrémenter first, ce qui calcule la valeur 11, puis le code incrémente second, ce qui calcul 21, pour enfin faire l'addition de ces deux valeurs et donc calculer 32. Nous sommes bien d'accord, l'opérateur ++ est prioritaire sur l'opérateur + : il n'est donc pas nécessaire d'employer des paires de parenthèses.

Utilisation postfixée des opérateurs ++ et --

Il existe donc une autre forme d'utilisation de ces opérateurs : la forme postfixée, c'est à dire que l'opérateur n'est plus placé à la gauche de la variable à incrémenter, mais plutôt à sa droite. Si un tel opérateur est utilisé seul, il n'y a pas de différence avec la forme précédente. Pour vous en convaincre, veuillez tester cet exemple.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
public class Demo {

    public static void main( String [] args ) {
    
        int value = 10;                 // On démarre avec une variable initialisée à 10;
        value++;                        // Cette instruction se contente d'incrémenter value de 1
        System.out.println( value );    // Affiche 11
        
        value--;                        // Cette instruction se contente de décrémenter value de 1
        System.out.println( value );    // Affiche 10
        
        // Un autre exemple, on fait une boucle de 0 à 9
        for( int i=0; i<10; i++ ) {
            System.out.println( "i == " + i );
        }
    }
    
}
Utilisation simple des ces opérateurs en forme préfixée

Par contre, si l'un de ces deux opérateurs (++ ou --) est utilisé en forme postfixée dans une expression, alors le résultat produit pourra être surprenant. Pour comprendre, analysons le programme suivant.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
public class Demo {

    public static void main( String [] args ) {
    
        int first = 10;
        int second = 20;
        int result = first++ + second++;
        
        System.out.println( result );   // Affiche 30
    
    }
    
}
Utilisation d'un ++ dans une expression

Ce qui est surprenant, c'est que l'incrémentation sera bien faite, mais après le calcul de l'expression en cours et juste avant le ; qui termine l'instruction en cours. Du coup, on peut presque dire que int result = first++ + second++; est équivalent à int result = first + second; ++first; ++second;.

Ne vous trompez donc pas dans la forme d'utilisation souhaitée pour vos opérateurs d'incrémentation et de décrémentation, vous pouriez le regreter. ;-)



Manipulation des types entiers Utilisation des opérateurs binaires