Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter

Support de cours · chapitre 4

Sémantique de base

Instructions, affectation, portée des variables et opérateurs.

4.1 Instructions

Il existe deux types d’instructions : les déclarations de variables, et les instructions à exécuter (affectation, saisie, affichage…). Les instructions sont exécutées dans l’ordre où elles sont écrites.

instruction 1;
instruction 2;
// ...
instruction n;

4.2 Opérateur d’affectation

L’opérateur d’affectation = permet de placer le résultat d’une expression dans une variable :

  1. on évalue l’expression située à droite de l’opérateur ;
  2. on stocke le résultat dans la variable située à gauche.

On peut réaliser une affectation lors de la déclaration d’une variable : on parle alors d’initialisation.

int monAge = 10;
int anneeEnCours = 1999;

4.3 Notion de bloc, de portée et de déclaration

On peut séparer le programme en différents blocs situés entre accolades {}.

  • Un bloc enfant a accès aux éléments du bloc parent ; l’inverse est faux.
  • Une variable cesse d’exister dès que le bloc qui la déclare est terminé : attention à la portée !
  • Redéclarer une variable est interdit.

La portée, vue par le compilateur

public class Demo {
    public static void main(String[] args) {
        int dehors = 1;
        {
            int dedans = 2;
            System.out.println("le bloc enfant voit dehors : " + dehors);
            System.out.println("et dedans : " + dedans);
        }
        // System.out.println(dedans);  <- dedans n'existe plus ici
        System.out.println("fin : " + dehors);
    }
}

4.4.1 Opérateurs arithmétiques

OpérateurDescription
+Addition
-Soustraction
*Multiplication
/Division
%Modulo (reste de la division entière)
<<Décalage binaire à gauche
>>Décalage binaire à droite

4.4.2 Opérateurs de comparaison et binaires

OpérateurSignification
>strictement supérieur
<strictement inférieur
>=supérieur ou égal
<=inférieur ou égal
==égalité
!=différent de
&ET binaire
^OU exclusif binaire
|OU binaire
&&ET logique
||OU logique

4.4.3 Raccourcis d’écriture

a++; // equivalent a : a = a + 1;
a--; // equivalent a : a = a - 1;
a++; // Renvoie la valeur de a PUIS l'incremente
--b; // Decremente b PUIS renvoie sa valeur

On peut étendre la fonction des opérateurs de base et de l’affectation :

a /= 10;  // equivaut a : a = a / 10
a -= 10;  // equivaut a : a = a - 10
a *= 10;  // equivaut a : a = a * 10
a |= 10;  // equivaut a : a = a | 10
a <<= 10; // equivaut a : a = a << 10

Pré-incrémentation contre post-incrémentation

public class Demo {
    public static void main(String[] args) {
        int a = 5;
        System.out.println("a++ affiche " + (a++) + " puis a vaut " + a);
        int b = 5;
        System.out.println("++b affiche " + (++b) + " et b vaut " + b);

        int c = 5;
        c += 10;
        System.out.println("c apres c += 10 : " + c);
        System.out.println("17 % 5 = " + (17 % 5));
    }
}