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 :
- on évalue l’expression située à droite de l’opérateur ;
- 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érateur | Description |
|---|---|
+ | 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érateur | Signification |
|---|---|
> | 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));
}
}