Vous êtes sur la page 1sur 53

Chapitre 2 : Premières Applications Java

l Objectifs
- Etre capable d’écrire des programmes simples en Java
- Etre capable d’utiliser les instructions d’entrées/sorties
- Devenir familier avec les types de données primitifs
- Comprendre les concepts de base de la mémoire
- Etre capable d’utiliser les opérateurs arithmétiques, relationnels et logiques
- Comprendre la précédence des opérateurs
- Utiliser la documentation

l Sommaire
- Introduction - Va r i a b l e s , C o n s t a n t e s ,
Tableaux
- Premier programme en Java
- Opérateurs
- Compiler et exécuter un programme Java
- Utiliser la documentation
- Affichage de plusieurs lignes de texte
- Affichage dans une boite de dialogue
- Saisie et Affichage

© Karim Bouzoubaa 1
2.1 Introduction

l Programmation avec le langage Java


- Exemples simples
- Analyse détaillée des exemples

- Analyse des types des données en Java


- Étude des opérateurs pour combiner des données dans
une expression

© Karim Bouzoubaa 2
2.2 Premier prog en Java : afficher une ligne de texte

l Programme pour afficher le texte


- ˝Premier programme en Java˝

© Karim Bouzoubaa 3
2.2 Premier prog en Java : afficher une ligne de texte

1 // prog 2.1: Premier.java


2 // Un premier programme en Java
3
4 public class Premier {
5
6 // Méthode main commence l’exécution d’un programme Java
7 public static void main(String args[]) {
8 System.out.println("Premier programme en Java");
9 } // Fin de la méthode main
10
11 } // Fin de la classe Premier

© Karim Bouzoubaa 4
2.2 Premier prog en Java : afficher une ligne de texte

1. // prog 2.1: Premier.java


2. // Un premier programme en Java

l Commentaires
- Un commentaire qui commence par le symbole // et
finit à la ligne est appelé commentaire simple ligne
l Améliorer la lisibilité des programmes
l Un commentaire ne cause l’ordinateur à
l’exécution d’aucune action
- Java ignore les commentaires
l Commentaire à lignes multiples
/* Ceci est
un commentaire
à lignes multiples */

© Karim Bouzoubaa 5
2.2 Premier prog en Java : afficher une ligne de texte
4. public class Premier {

l Déclare la définition d’un programme appelé Premier


l Tout programme Java doit contenir au moins la définition d’une classe (mot clé class)
l Un mot clé est un mot réservé à l’utilisation par Java (public class class)
l Le mot public veut dire que le programme est publique (avant chapitre 4)
l Nécessaire de nommer le fichier avec le même nom que celui de la classe publique suivi
de l’extension .java (Premier.java)
l Une accolade ouvrante{ (ligne 4) introduit le corps de toute classe. Une accolade fermante
correspondante } (ligne 11) doit terminer toute définition de classe.

7. public static void main(String args[]) {

l Tout programme Java commence son exécution par main


l Les parenthèses après main indiquent que c’est un bloc de programme appelé méthode.
Une classe java contient une ou plusieurs méthodes. seulement une de ces méthodes doit
être la méthode main et doit être définie tel qu’illustrée à la ligne 7
l Le mot clé void indique que main exécutera un ensemble de tâches mais ne retournera à la
fin aucune information.
l L’accolade gauche { (ligne 7) initie le corps de main. L’accolade droite } finit la définition de
main (ligne 9).

© Karim Bouzoubaa 6
2.2 Premier prog en Java : afficher une ligne de texte

8. System.out.println("Premier programme en Java");

l Chaque instruction en Java finit par le symbole ;


l Afficher la chaîne de caractères contenue entre les doubles quottes " "
l La méthode System.out.println affiche une ligne de texte dans la fenêtre de
console et passe à la ligne suivante,
l La méthode System.out.print affiche une ligne de texte et le curseur reste
positionné sur la même ligne et exactement à la fin du texte en question.

© Karim Bouzoubaa 7
2.3 Compiler et exécuter un programme Java
l Deux étapes
1. Compiler : javac Premier.java (Si pas d’erreurs, génération de Premier.class)

Figure 2.4 - Exécution du programme Premier sur une console DOS

Par ailleurs, et comme nous l’avons dit précédemment, le même fichier .c


2. Exécuter le programme :s’exécute de la même manière sur les autres plateformes. La figure 2.5 m
java Premier
l’exécution du programme Premier sur une console Linux.

!
Figure 2.5 - Exécution du programme Premier sur une console Linux

Nous remarquerons que le fichier testé a été enregistré dans le répertoire bin de
afin d'être capable d'appeler les commandes javac et java qui se trouvent s
© Karim Bouzoubaa 8
2.4 Affichage de plusieurs lignes de texte

l Exécution du programme PlusieursLignes.java


l Chaque mot du texte est affiché sur une ligne

© Karim Bouzoubaa 9
2.4 Affichage de plusieurs lignes de texte

1 // prog 2.2: PlusieursLignes.java


2 // Un second programme en Java
3
4 public class PlusieursLignes {
5
6 // Méthode main commence l’exécution d’un programme Java
7 public static void main(String args[]) {
8 System.out.println("Mon ");
9 System.out.print("premier\nprogramme\nJava");
10 } // Fin de la méthode main
11
12 } // Fin de la classe PlusieursLignes

© Karim Bouzoubaa 10
2.4 Affichage de plusieurs lignes de texte

1 // prog 2.2: PlusieursLignes.java


2 // Un second programme en Java

6 // Méthode main commence l’exécution d’un programme Java

l commentaires

4 public class PlusieursLignes {

l déclare la définition d’un programme appelé PlusieursLignes

7 public static void main(String args[]) {

l La méthode main où Java commence l’exécution

© Karim Bouzoubaa 11
2.4 Affichage de plusieurs lignes de texte
8 System.out.println("Mon ");

l La méthode System.out.println affiche le texte "Mon " et passe à la ligne


suivante
9 System.out.print("premier\nprogramme\nJava");

l Quand Java rencontre le caractère \, il le combine avec le caractère suivant pour


former une séquence. La séquence \n est interprétée comme étant le caractère
de saut de ligne. \n n’est pas affiché à l’écran
l Le caractère spécial "\n" indique aux méthodes println et print de positionner
le curseur au début de la ligne suivante.
è La ligne 9 affiche les textes premier, programme et Java, chacun sur une ligne
séparée
l Les autres séquences de Java

Séquence Nom Description


\n Nouvelle ligne Positionne le curseur au début de la ligne suivante
\t Tabulation horizontale Déplace le curseur au prochain stop de tabulation
\r Retour chariot Positionne le curseur au début de la ligne courante
\\ Utilisé pour afficher le caractère \ backslash
\" Double quotte Utilise pour afficher le caractère “ double quotte

© Karim Bouzoubaa 12
2.4 Affichage de plusieurs lignes de texte

l Exécution du programme PlusieursLignes.java


l Chaque mot du texte est affiché sur une ligne

© Karim Bouzoubaa 13
2.5 Affichage dans une boite de dialogue

© Karim Bouzoubaa 14
2.5 Affichage dans une boite de dialogue

1. // prog 2.3: BoiteDialogue.java


2. // Un programme en Java qui affichage un message dans une
3. // boite de dialogue
4.
5. // importer la classe JOptionPane
6. import javax.swing.JOptionPane ;
7.
8. public class BoiteDialogue {
9.
10. // Méthode main commence l’exécution d’un programme Java
11. public static void main(String args[]) {
12. JOptionPane.showMessageDialog(null, "Mon premier programme Java");
13. System.exit(0);
14. } // Fin de la méthode main
15.
16.} // Fin de la classe BoiteDialogue

© Karim Bouzoubaa 15
2.5 Affichage dans une boite de dialogue

l println et print affichent à l’intérieur de la fenêtre de


commandes
l De nos jours, il y a utilisation des interfaces graphiques
l Utilisation de libraires dédiées. Dans Java, une libraire
s’appelle un package
l Un package est un programme déjà écrit qui fournit un
ensemble de services
o Un package contient des classes
o Une classe contient des méthodes
o Chaque service correspond à une méthode
l javax.swingest un package (plus de détails, section 2.9).
La classe qui nous intéresse est JOptionPane

© Karim Bouzoubaa 16
2.5 Affichage dans une boite de dialogue
1. // prog 2.3: BoiteDialogue.java
2. // Un programme en Java qui affiche un message dans une
3. // boite de dialogue
4. …
5. // importer la classe JOptionPane
6. …

l commentaires

6. import javax.swing.JOptionPane;

l Dans Java, pour appeler une librairie, utiliser le mot clé import
l Cette instruction permet d’importer la classe JOptionPane du package
javax.swing

l La classe JOptionPane contient des méthodes qui permettent d’interagir avec


l’utilisateur (e.g. lire des données ou les afficher à l’écran) par utilisation de
composantes graphiques.

8. public class BoiteDeDialogue {

l déclare la définition d’un programme appelé BoiteDeDialogue

© Karim Bouzoubaa 17
2.5 Affichage dans une boite de dialogue
11. public static void main(String args[]) {

l La méthode main où Java commence l’exécution

12. JOptionPane.showMessageDialog(null, "Mon premier programme Java");

l Appel à la méthode showMessageDialog de la classe JOptionPane


l L’appel à une méthode appartenant à une classe se fait suivant la syntaxe
NomClasse.NomMéthode(paramètres)

l showMessageDialog affiche à l’écran une boite de dialogue contenant un


message. Elle est appelée avec deux paramètres séparés par une virgule
- Le premier argument correspondra au mot clé Java null
- Le second paramètre est le texte correspondant au message. Comme print et
println, le texte doit être entre deux double quottes.

13. System.exit(0);

l Termine l’exécution du programme


l Nécessaire lors de l’utilisation de composants graphiques.

© Karim Bouzoubaa 18
2.5 Affichage dans une boite de dialogue

Titre de la boite de dialogue


Texte de la
Icône de la boite de dialogue boite de
dialogue

Bouton de validation

© Karim Bouzoubaa 19
2.6 Saisie et Affichage

© Karim Bouzoubaa 20
2.6 Saisie et Affichage

l Programme qui permet d’afficher et de saisir des


informations de l’utilisateur
l But du programme :
- utilisateur saisit un nombre
- programme affiche le carré du nombre saisi
- deux versions de ce programme:
l La première version utilisera une interface console
l La deuxième version utilisera une interface graphique

© Karim Bouzoubaa 21
2.6 Saisie et Affichage – version 1
1. // prog 2.4: Carre.java
2. // Un programme Java qui calcule le carré d’un nombre
3.
4. // importer la classe Scanner
5. import java.util.Scanner ;
6.
7. public class Carre {
8.
9. // Méthode main commence l’exécution d’un programme Java
10. public static void main(String args[]) {
11.
12. Scanner entree;
13. int nombre; // le nombre entier
14. int carre; // le carré à afficher
15.
16. System.out.print("Donner un nombre : ");
17. entree = new Scanner(System.in) ;
18. nombre = entree.nextInt() ;
19. carre = nombre * nombre ;
20. System.out.print("Le carré du nombre est : " + carre);
21.
22. } // Fin de la méthode main
23.
24. } // Fin de la classe Carre

© Karim Bouzoubaa 22
2.6 Saisie et Affichage – version 1
5. import java.util.Scanner ;

l Cette instruction permet d’importer la classe Scanner du package java.util


l La classe Scanner contient des méthodes qui permettent de lire une chaîne de
caractères de l’utilisateur, de l’analyser et d’en reconnaître les types primitifs
tels que les entiers, les caractères, etc.

7. public class Carre {



10. public static void main(String args[]) {

l déclare la définition d’un programme appelé Carre


l La méthode main où Java commence l’exécution

© Karim Bouzoubaa 23
2.6 Saisie et Affichage – version 1
12. Scanner entree;
13. int nombre;
14. int carre;

l Pour récupérer la valeur du nombre dont on veut calculer le carré, nous devons
utiliser des variables
l Une variable
- est une case de la mémoire de l’ordinateur
- est d’un certain type
l entier : 6, 0, -4, 99, -458
l réel : 3.5, 56.1, -5.451
l caractère : ‘b’, ‘m’, ‘a’
l etc
- prend des valeurs (selon le type)
l il faut la déclarer toutes les variables utilisées dans le programme
- spécifier son nom
- spécifier son type
l Dans le programme, 3 variables sont déclarées : entree, nombre et carre
- chaque déclaration finit par le symbole ‘;’
- entree est de type Scanner,
- nombre et carre sont de type int (entières)

© Karim Bouzoubaa 24
2.6 Saisie et Affichage – version 1
16. System.out.print("Donner un nombre : ");

l Affiche un message à l’utilisateur pour l’informer de saisir un nombre

17. entree = new Scanner(System.in) ;

l Permet de spécifier la source d’où proviennent les données


l En effet, un Scanner permet au programme de lire des données des
périphériques externes
o Les données peuvent provenir de plusieurs sources, telles que le disque ou le clavier
o Dans notre cas, le Scanner est associé à l’entrée standard System.in qui est le clavier

18. nombre = entree.nextInt() ;

l la méthode nextInt de la classe Scanner


o requiert une rentrée (valeur entière) de la part de l’utilisateur
o La valeur saisie est affectée à la variable nombre
l L’opérateur ‘=’ permet d’assigner (ou d’affecter) ce qui est lue par la méthode
nextInt à la variable nombre : cette une instruction d’affectation.

© Karim Bouzoubaa 25
2.6 Saisie et Affichage – version 1
19. carre = nombre * nombre ;

l Multiplie la valeur de la variable nombre par elle-même


l Affecte le résultat à la variable carre
l L’opération de multiplication est effectuée grâce au symbole ‘*’ (étoile) et non
pas au symbole ‘x’
20. System.out.print("Le carré du nombre est : " + carre);

l Afficher un message contenant le résultat recherché.


l Le message comporte deux parties:
- une partie statique "Le carré du nombre est : "
- une partie dynamique : la variable carre dont la valeur change selon les exécutions
- Les deux parties sont concaténées grâce à l’opérateur de concaténation ‘+’:

© Karim Bouzoubaa 26
2.6 Saisie et Affichage – version 2
1. // prog 2.5: CarreGraphique.java
2. // Un programme Java qui calcule le carré d’un nombre
3.
4. // importer la classe JOptionPane
5. import javax.swing.JOptionPane ;
6.
7. public class CarreGraphique {
8.
9. // Méthode main commence l’exécution d’un programme Java
10. public static void main(String args[]) {
11.
12. String nombreChaine; // chaine saisie par l’utilisateur
13. int nombre; // le nombre entier
14. int carre; // le carré à afficher
15.
16. nombreChaine = JOptionPane.showInputDialog("Donner un nombre");
17. nombre = Integer.parseInt(nombreChaine) ;
18. carre = nombre * nombre ;
19. JOptionPane.showMessageDialog(null,"Le carré du nombre est : " +
20. carre, "Résultat", JOptionPane.PLAIN_MESSAGE);
21. System.exit(0);
22.
23. } // Fin de la méthode main
24.
25. } // Fin de la classe CarreGraphique

© Karim Bouzoubaa 27
2.6 Saisie et Affichage – version 2
5. import javax.swing.JOptionPane ;
l Cette instruction permet d’importer la classe JOptionPane du package
javaw.swing

l La classe JOptionPane contient des méthodes qui permettent d’interagir avec


l’utilisateur (e.g. lire des données ou les afficher à l’écran) par utilisation de
composantes graphiques.
7. public class CarreGraphique {

10. public static void main(String args[]) {

l déclare la définition d’un programme appelé CarreGraphique


l La méthode main où Java commence l’exécution

12. String nombreChaine;


13. int nombre;
14. int carre;

l Trois variables utilisées


- nombreChaine de type String, i.e. chaine de caractères "mon programme" , "java"
- nombre et carre sont de type int (entières)

© Karim Bouzoubaa 28
2.6 Saisie et Affichage – version 2
16. nombreChaine = JOptionPane.showInputDialog("Donner un nombre");

l Cette instruction lit une chaîne de caractères de l’utilisateur représentant le


nombre pour lequel nous désirons calculer le carré.
l La méthode showInputDialog de la classe JOptionPane affiche une boite de dialogue
requérant une rentrée de la part de l’utilisateur
l Cette méthode possède un argument de type chaîne de caractères qui
représente le message à afficher à l’utilisateur "Donner un nombre". Le message
renseigne l’utilisateur sur ce qui lui est demandé de fournir à l’ordinateur.
l Cette boite de dialogue comprend également un zone où l’utilisateur doit taper
la valeur demandée et comprend également deux autres boutons:
- Le bouton ‘OK’ permet de valider la valeur saisie
- Le bouton ‘Annuler’ annule la saisie.

l La valeur saisie par l’utilisateur est affectée à la variable nombreChaine.

© Karim Bouzoubaa 29
2.6 Saisie et Affichage – version 2
17. nombre = Integer.parseInt(nombreChaine) ;

l Différence entre version 1 et version 2


o La méthode nextInt lit directement un entier

o La méthode parseInt lit une chaine de caractères

l La méthode parseInt de la classe Integer convertit la valeur de la variable


donnée en argument (nombreChaine dans notre cas) et la convertit en la valeur
entière correspondante. Ensuite, grâce à l’opérateur =, cette valeur est affectée
à la variable entière nombre.

18. carre = nombre * nombre ;

l Multiplie la valeur de la variable nombre par elle-même et affecte le résultat à la


variable carre

© Karim Bouzoubaa 30
2.6 Saisie et Affichage – version 2
19. JOptionPane.showMessageDialog(null,"Le carré du nombre est : " + carre,
"Résultat", JOptionPane.PLAIN_MESSAGE);

l Afficher un message contenant le résultat recherché par l’utilisateur


l showMessageDialog utilisée avec quatre paramètres:
- Le premier est le même qu’avec l’appel à deux paramètres
- Le second paramètre représente le message à afficher
- Le troisième argument : nom de la boite de dialogue
- Le quatrième argument correspond au type de la boite de dialogue
(PLAIN_MESSAGE sans icône)
- Par défaut, showMessageDialog affiche une boite de type informationnel symbolisé par
l’icône portant la lettre ‘i’.
l Autres types de boite de dialogue
Type de la boite de dialogue Icône Description
JOptionPane.ERROR_MESSAGE Indique une erreur

JOptionPane.INFORMATION_MESSAGE Indique un message informationnel

JOptionPane.WARNING_MESSAGE Indique un avertissement

JOptionPane.QUESTION_MESSAGE Pose une question

JOptionPane.PLAIN_MESSAGE aucune Indique un message sans icône

© Karim Bouzoubaa 31
2.7 Variables

l Variable : donnée utilisée dans un programme (e.g. nombre, nombreChaine et carre)


l Variable : emplacement dans la mémoire centrale de l’ordinateur
l Lors d’une affectation : le système se charge de mettre une valeur (en code
binaire) dans l’emplacement mémoire correspondant
l Lorsque cette variable est utilisée pour affichage ou pour être évaluée dans une
expression, le système va récupérer sa valeur de la mémoire pour effectuer le
traitement demandé
l Chaque variable possède :
- un nom (qui l’identifie de manière unique dans le programme)
- un type (entier, chaîne de caractères, réel, etc.)
- une taille (en octets)
- une valeur (selon le type)
- Exemple, nombre porte le nom nombre, est de type entier, a une taille de 4 octets en
mémoire centrale et possède la valeur 5 suite à l’exécution de l’instruction de la ligne 18.

© Karim Bouzoubaa 32
2.7 Variables - Le nom

l Nommer une variable :

- Conditions
l Correct : x, x1, som, moy_1, _x
l Non correct : 1x, x-y, x!

- Conventions
l Commencer une variable par une minuscule (e.g. nombre)
l Si le nom de la variable est composé (de plusieurs mots), commencer chaque nouveau mot
par une majuscule (e.g. monPremierNombre).

© Karim Bouzoubaa 33
2.7 Variables - Le type et la taille
l Le type d’une variable permet de connaître
- sa taille en mémoire (en octets),
- l’ensemble des valeurs possibles
- les opérations que cette variable est susceptible de subir.
l Types simples et types composés:
- Un type est simple lorsque ses valeurs ne sont pas décomposables en constituants
plus simples. Quatre catégories:
1. Types entiers : byte, short, int et long qui correspondent aux nombres entiers positifs,
nuls ou négatifs
2. Types à virgule flottante : float et double qui représentent les nombres avec une précision
fractionnelle
3. Type caractère : char, qui représente les symboles dans un ensemble de caractères tels
que les lettres et les digits
4. Type booléen : boolean, qui permet de représenter les valeurs logiques
l La valeur par défaut pour byte, short, int, long, float, double = 0, char = 0.
l La valeur par défaut pour boolean = false
- Dans le cas contraire, un type est dit composé (sous forme de classes, voir chapitre
oritenté-objet).

© Karim Bouzoubaa 34
2.7 Variables - Le type et la taille
Nombre
Type Intervalle des valeurs
d’octets
byte 1 -128 .. 127 (-27 .. 27 – 1)

short 2 -32 768 .. 32 767 (-215 .. 215 – 1)

int 4 -2 147 483 648 .. -2 147 483 647 (-231 .. 231 – 1)

long 8 -9 223 372 036 854 775 808 .. -9 223 372 036 854 775 807 (-263 .. 263 – 1)

-3.4 028 234 663 852 886 E+38 .. -1.40 129 846 432 481 707 e-45
float 4 et
1.40 129 846 432 481 707 e-45 .. 3.4 028 234 663 852 886 E+38

-1.7 976 931 348 623 157 E+308 .. -4.94 065 645 841 246 544 e-324
double 8 et
4.94 065 645 841 246 544 e-324 .. 1.7 976 931 348 623 157 E+308

char 2 ’\u0000’ .. ’\uFFFF’ Ensemble de caractères unicode

boolean 1 true, false

© Karim Bouzoubaa 35
2.8 Constantes
l Une constante est une donnée qui ne change de valeur durant tout le temps
d’exécution du programme.
l Comme la variable, une constante porte
- un nom,
- un type,
- une taille
- et une valeur
l Pour spécifier qu’une donnée est constante, utiliser le mot clé Java final
final double PI = 3.14 ;
l Les conventions d’écriture des constantes :
- Tous les caractères du nom de la constante sont majuscules (e.g. PI)
- Si le nom de la constante est composé (de plusieurs mots), séparer les mots par un
souligné ‘_’ (e.g. MA_CONSTANTE).

© Karim Bouzoubaa 36
2.9 Tableaux
tab[0] tab[1] tab[2] tab[3] tab[4]
6 5 -2 54 18

l Un tableau est une composante Java ni simple ni composée :


- un tableau est une structure de données qui consiste en un ensemble fixe d’éléments de même
type
- on se réfère à tous les éléments du tableau avec le même nom
l D’autres types de structures de données existent :
l Les structures de données peuvent être regroupées sous deux groupes :
- les structures statiques (taille fixe) : les tableaux
- les structures dynamiques (taille peut changer) : les listes, les piles, les graphes, etc.
l Pour référer à un élément du tableau :
- le nom
- le numéro de sa position (ou l’indice). Indice premier élément = 0
- Exemple tab[1] deuxième élément du tableau, valeur = 5

l Le nom du tableau : mêmes conditions et conventions de nomination qu’une variable

© Karim Bouzoubaa 37
2.9 Tableaux
tab[0] tab[1] tab[2] tab[3] tab[4]
6 5 -2 54 18

l Déclaration d’un tableau en deux étapes:


- Etape 1 : spécifier le type des éléments et le nom du tableau type nom[] ;
l int tab[];
- Etape 2 : spécifier le nombre d’éléments avec l’opérateur new nom = new type[nombre];
l tab = new int[5];

l Déclaration d’un tableau en une seule étape :


l int tab[] = new int[5];

l Accéder à un élément du tableau (lecture/écriture) : en précisant son indice


- tab[i] : élément d’indice i de tab
l Initialiser un tableau : deux façons
- Initialiser chaque élément du tableau
l tab[0] = 6; tab[1] = 5; … tab[4] = 18;
- Initialiser lors de la déclaration (plus nécessaire d’utiliser new et de spécifier le nombre)
l int tab[] = {6, 5, -2, 54, 18};

© Karim Bouzoubaa 38
2.9 Tableaux
l But du programme : 1. // prog 2.6.1: Tableau.java
2. // Un programme Java qui initialise les éléments d’un tableau
- Déclarer un 3. // et affiche un de ses éléments
tableau, 4.
5. // importer la classe JOptionPane
- l’initialiser 6. import javax.swing.JOptionPane ;
7.
- afficher un de 8. public class Tableau {
ses éléments.
9.
10. // Méthode main commence l’exécution d’un programme Java
11. public static void main(String args[]) {
12.
13. int tab[]; // tableau d’entiers
14. String indiceChaine; // chaine saisie par l’utilisateur
15. int indice; // le nombre entier
16.
17. tab = new int[5] ; // allocation en mémoire de 5 entiers
18. tab[0] = 6;
19. tab[1] = 5;
20. tab[2] = -2;
21. tab[3] = 54;
22. tab[4] = 18;
23. indiceChaine = JOptionPane.showInputDialog("Donner un indice");
24. indice= Integer.parseInt(indiceChaine) ;
25. JOptionPane.showMessageDialog(null,
26. "Le tableau à l’indice " + indice + " est : " + tab[indice-1]);
27. System.exit(0);
28.
29. } // Fin de la méthode main
30.
31. } // Fin de la classe Tableau

© Karim Bouzoubaa 39
2.9 Tableaux
13. int tab[];
14. String indiceChaine;
15. int indice;

l Déclaration d’un tableau tab d’entiers


l Déclaration d’une variable indiceChaine qui permettra à l’utilisateur de saisir une
chaîne de caractères représentant un indice du tableau utilisé pour afficher un
élément du tableau
17. tab = new int[5] ;
18. tab[0] = 6;
19. tab[1] = 5;
20. tab[2] = -2;
21. tab[3] = 54;
22. tab[4] = 18;

l Allocation de 5 éléments pour tab et son initialisation élément par élément


23. indiceChaine = JOptionPane.showInputDialog("Donner un indice");
24. indice= Integer.parseInt(indiceChaine) ;
25. JOptionPane.showMessageDialog(null,
26. "Le tableau à l’indice " + indice + " est : " + tab[indice-1]);

l La ligne 23 demande à l’utilisateur de saisir un indice. Ce dernier est converti à


la ligne 24 en entier. L’instruction des lignes 25 et 26 affiche l’élément
correspondant à l’indice demandé par l’utilisateur.

© Karim Bouzoubaa 40
2.10 Opérateurs
l Les expressions sont utilisées dans beaucoup de programmes (Δ = b2 – 4ac)
l Expression = combinaison (variable, valeur, constante, méthode)
l La combinaison par utilisation d’opérateurs
l Exemple : est-ce que Δ est positif ou non
- Expression : (Math.pow(b, 2) – (4 * a * c)) > 0

l utilisation de variables a, b et c
l utilisation de la valeur 4
l appel à la méthode Math.pow
l opérateurs arithmétiques de soustraction ‘-‘ et de multiplication ‘*’
l opérateur relationnel ‘>’

l Opérateurs sont de trois types :


- Arithmétiques
- Relationnels
- Logiques.

© Karim Bouzoubaa 41
2.10 Opérateurs arithmétiques
Opérateur Opérateur arithmétique Expression algébrique Expression Java
Addition + a+b a+b
Soustraction - a–b a–b
Multiplication * ab a*b
a
Division / a/b
b
Modulo (Reste de la division) % a mod b a%b

(a + b)(c − d)
l
2
devient ((a + b) * (c – d)) / 2

l Pour évaluer une expression sans parenthèses : Règles de priorité


- a + b * c – d = (a + b) * (c – d) ou a + (b * c) – d

Opérateur Opération Priorité


Evalué en premier. L’expression la plus interne est évaluée
() Parenthèses d’abord. S’il y a plusieurs pairs de parenthèses du même niveau,
elles sont évaluées de gauche à droite
Multiplication, Evalué en second. S’il y a plusieurs opérateurs de ce niveau, ils
*, / et %
Division et Modulo sont évalués de gauche à droite.
Addition et Evalué en dernier. S’il y a plusieurs opérateurs de ce niveau, ils
+, -
Soustraction sont évalués de gauche à droite.

© Karim Bouzoubaa 42
2.10 Opérateurs arithmétiques

• Évaluation de l’expression a + b * c – d

1 a = 1, b = 2, c = 4, d = 3
2 a+b*c-d
3 a+b*c-d
4 a+8-d
5 9-d
6 6

© Karim Bouzoubaa 43
2.10 Opérateurs arithmétiques – Incrémentation & Décrémentation
1. // prog 2.7: Incrementation.java
l i = i + 1; instruction qui 2. // Un programme Java qui montre l’utilisation de l’incrémentation
revient très souvent dans 3.
les programmes 4.
5.
public class Incrementation {

6. // Méthode main commence l’exécution d’un programme Java


- Java propose des 7. public static void main(String args[]) {
raccourcis 8.
- Post-incrémentation : i++; 9. int x, y ; // deux entiers
10.
- Pré-incrémentation : ++i; 11. x = 9 ;
12. System.out.println("x = " + x) ;
13.
l i = i - 1; remplacé par 14. y = ++x -5 ;
15. System.out.println("x = " + x) ;
- Post-décrémentation : 16. System.out.println("y = " + y) ;
i--; 17.
18. x = 9 ;
- Pré-décrémentation : --i; 19. System.out.println("\nx = " + x) ;
20.
21. y = x++ -5 ;
22. System.out.println("x = " + x) ;
23. System.out.println("y = " + y) ;
24.
25. } // Fin de la méthode main
26.
27. } // Fin de la classe Incremenation

© Karim Bouzoubaa 44
2.10 Opérateurs arithmétiques – Assignation

l Java fournit des opérateurs d’assignation pour réduire les expressions d’affectation
l Par exemple, l’expression x = x + 9 devient x += 9
l L’opérateur d’assignation d’addition += ajoute la valeur de l’expression de droite à la valeur
de la variable se trouvant à gauche de l’opérateur.
l De manière générale
- variable = variable opérateur expression (opérateur étant +, -, *, / et %)
- variable opérateur= expression

- Exemple, x = x * (5 / y) réduit à x *= 5 / y

© Karim Bouzoubaa 45
2.10 Opérateurs relationnels

• Pour comparer deux valeurs, java fournit l’ensemble des opérateurs


relationnels suivants (retournent true ou false)

Opérateur Explication
== Egal
!= Non égal
> Supérieur
>= Supérieur ou égal
< Inférieur
<= Inférieur ou égal

© Karim Bouzoubaa 46
2.10 Opérateurs logiques
• Comment exprimer : x est dans l’intervalle [5, 10] ?
• En java, Il faut exprimer
– x est supérieur ou égale à 5 (x >= 5)
• et (conjonction logique)
– x est inférieur ou égal à 10 (x <= 10)
• En java, l’expression devient : (x >= 5) && (x <= 10)

• La liste des opérateurs logiques est

Opérateur Explication
&& et logique
& et logique booléen
|| ou logique
| ou logique booléen inclusif
^ ou logique booléen exclusif
! non logique

© Karim Bouzoubaa 47
2.10 Opérateurs - Priorité
l La priorité entre tous les opérateurs. Ces derniers sont
listés de haut en bas dans un ordre décroissant de priorité
Opérateur
()
++ -- !
* / %
+ -
> >= < <=
== !=
&
^
|
&&
||
= += -= *= /= %=

© Karim Bouzoubaa 48
2.10 Opérateurs – Exemple récapitulatif

l Évaluation de l’expression : ( a – b > 0 ) && ( a * b + c < 100 )

- a = 5, b = 2 , c = 3

Ordre Opération Expression


1. a - b ( 3 > 0 ) && ( a * b + c < 100 )
2. 3 > 0 true && ( a * b + c < 100 )
3. a * b true && ( 10 + c < 100 )
4. 10 + c true && ( 13 < 100 )
5. 13 < 100 true && true
6. true && true true

© Karim Bouzoubaa 49
2.11 Documentation

l Documentation Java disponible gratuitement : java.sun.com/reference/docs/


l Objectifs de Java : fournir un langage comportant le plus possible de
fonctionnalités (e.g. puissance, maximum, tri de nombres, date
système, etc.)
l Ces fonctionnalités sont regroupées dans une API
l Pour les programmeurs : se concentrer sur la programmation de
leurs problèmes particuliers au lieu de perdre du temps à
programmer des fonctions qui peuvent avoir déjà été programmées
par d’autres par le passé.
l API très vaste (très difficile à connaître en entier)
- Java fournit l’API à travers une documentation
- Obtenir de l’aide sur ces fonctions et sur la manière dont elles doivent être
utilisées.

© Karim Bouzoubaa 50
2.11 Documentation

l Structure de ces fonctionnalités:


- API = ensemble de packages (ou librairies)
- Un package = ensemble de classes (ou programmes)
- Classe = ensemble de méthodes (ou fonctionnalités)
l Exemple, puissance mathématique xy
- Package java.lang, classe Math, méthode pow(x, y)
- Pour utiliser la méthode pow(x, y) dans un programme
l Mentionner le package et la classe import java.lang.Math;
l Pour utiliser toutes les classes du package import java.lang.*;

© Karim Bouzoubaa 51
2.11 Documentation

Cadre des
packages

Cadre
principal

Cadre
des
classes

© Karim Bouzoubaa 52
2.11 Documentation
l Importance de l’index (e.g. méthode de tri sort)

© Karim Bouzoubaa 53

Vous aimerez peut-être aussi