Les bases de la programmation en
Java
Dr MOUSSE Ange Mikaël
Sommaire
Les variables et les opérateurs
Les Variables
Les opérateurs
Les Constantes
Les instructions de contrôle de Java
Les branchements conditionnels
Les boucles
les débranchements
Les tableaux
Les tableaux à une dimension
Les tableaux à n dimensions
méthode static
Lire/Ecrire au clavier
Premier Programme Java 2
Saisie de données
Sommaire
Les variables et les opérateurs
Les Variables
Les opérateurs
Les Constantes
Les instructions de contrôle de Java
les débranchements
Les tableaux
méthode static
Lire/Ecrire au clavier
3
Dénition et déclaration
I Emplacements de mémoire dans lesquels on peut stocker des
informations de toute sorte en mémoire : des chires, des
résultats de calcul, des tableaux, des renseignements fournis
par l'utilisateur etc.
I Toute variable a un nom, un type et une valeur.
I Déclaration générale : Typedelavariable Nomdelavariable
;
I Trois sortes de variables : les variables d'instance, les variables
de classe et les variables locales.
I Deux types de variables : des variables de type simple ou 4
primitif et des variables de type complexe ou des objets.
Les types primitifs
I En java, tout est objet sauf les types de base (primitif).
I Il y a 8 types de base :
Byte entier signé sur 8 bits de 128 à +127
Short entier signé sur 16 bits de 32 768 à +32 767
int entier signé sur 32 bits de 2 147 483648 à 2 147 483
long entier signé sur 64 bits + ou -9 milliards de milliards
oat réel sur 32 bits de 1.4E-45 à 3.4E38
double réel sur 64 bits de 4.9E-324 à 1.79E308
boolean true ou false
char caractère Unicode sur 16 entier positif entre 0 et 65 535
bits
5
Exemple
int age = 10;
float salaire = 6500.04f;
double d = 0.0;
char = 'c';
\\Le type chaîne de caractères (type String) est défini com
\\ une classe Java
String nom = "TOTO"
6
Les Opérateurs arithmétiques
Ils opèrent sur des variables entières ou réelles an de produire des
résultats.
+ addition n = a + b;
- soustraction n = a - b;
* multiplication n = a * b;
/ division n = a / b;
+= addition n += b ; à n, ajouter b
-= soustraction n -= b ; à n, soustraire b
*= multiplication n *= b ; multiplier n par b
/= divisionr n /= b ; diviser n par b
% modulo n = a % b; reste de la division de a par b
%= modulo n %= b ; reste de la division de n par b
7
Les opérateurs d'incrémentation
Ils ajoutent ou retranchent la valeur 1 à une variable.
++ incrémente la variable j++ ; ou ++j ;
-- décrémente la variable j- - ; ou - -j ;
Exemple :
int i, j = 1;
i = j++ // i vaut 1 et j vaut 2
i = ++j // i vaut 3 et j vaut 3
8
Les opérateurs de comparaison
Ils opèrent généralement sur les expressions arithmétiques pour
donner des résultats booléens
Les opérateurs de comparaison
> supérieur
< inférieur
<= inférieur ou égal
>= supérieur ou égal
== égal
!= non égal (diérent)
Les opérateurs logiques : a, n, col, t sont des entiers
&& et logique (a >= 0) && (a <= 15)
|| ou logique (n < 0 || n >= col) 9
! négation ( !t)
Promotion Vs Casting(1)
Promotion
I Soit l'expression mixte suivante : a*b + n ; avec a et n de type
oat et b de type int ;
résulat :
a*b > (oat * (int-> oat)) = oat car b est promu de int en
oat
(a*b) + n > (oat + oat) donne un résulat oat.
I Le mécanisme de conversions d'ajustement de types est appelé
promotion de types.
10
I short -> int -> long -> oat -> double
Promotion Vs Casting(2)
I le type char :
I est soit un caracètre ;
I soit un code de caractère représenté sur 16 bits. Ex : E
correspont au code 69
I soit c1, c2 de type char on a :
I c1 + 1 est de type int ((char -> int) + int) -> int
I c1 + c2 est de type int ((char -> int) + (char -> int)) -> int
Casting
Le casting permet de forcer la conversion d'une expression
quelconque dans un type de son choix, à l'aide d'un opérateur
un peu particulier nommé cast.
11
Promotion Vs Casting(3)
Si, par exemple, n et p sont des variables de type int, l'expression :
(double) ( n/p )
aura comme valeur celle de l'expression entière n/p convertie en
double.
I (double) correspond en fait à un opérateur unaire dont le rôle
est d'eectuer la conversion dans le type double de l'expression
sur laquelle il porte.
I l existe autant d'opérateurs de cast que de types diérents (y
compris les types classe que nous rencontrerons
ultérieurement).
I En Java, toutes les conversions d'un type numérique (ou
caractère) vers un autre type numérique (ou caractère) sont
réalisables par cast et ne conduisent jamais à une erreur
12
d'exécution.
L'opérateur Ternaire
I 3 opérandes
I une autre façon de faire un test de condition sur des données
booléennes
variable = (condition) ? instruction 1 : instruction
2;
I Exemple : a=10, b=50 ;
int nombre =(a>b) ? 1 : 2 ;
13
Les Constantes
I Une constante est une variable dont la valeur reste inchangée
par la suite
I Le mot clé nal est utilisé avant le type de la variable
I L'identicateur de la constante est souvent écrit en majuscule
Exemple : \\
final int const = 10;
final float tva = 12.5f;
final double PI = 3.1415926535;
14
Sommaire
Les variables et les opérateurs
Les instructions de contrôle de Java
Les branchements conditionnels
Les boucles
les débranchements
Les tableaux
méthode static
Lire/Ecrire au clavier
15
if, switch
if (condition) {
...
} else if (condition) {
...
} else {
...
}
switch (expression) {
case constante1 :
instr11;
16
instr12;
break;
case constante2 :
while, do .. while, for
while (conditon) do{ for (init;condition;modif){
{ ...//instructions ...//instructions
... //instructions }while(condition); }
}
I while : le code est exécuté tant que la condition est vraie.
I do .. while : le code est au moins exécuté une fois quelque soit
la valeur de la condition.
I for : le code s'exécute à chaque fois la condition est vraie.
17
Sommaire
Les variables et les opérateurs
Les instructions de contrôle de Java
les débranchements
Les tableaux
méthode static
Lire/Ecrire au clavier
18
Les débranchements
Ce sont des intructions utilisées dans les boucles.
I break : il permet de quitter une boucle ou un branchement.
I continue : il permet de sauter d'itération.
while (...) {
...
break; //sortie immediate de la boucle
...
}
I Dans une structure de contrôle while, do ... while et for,
l'instruction continue produit l'abandon de l'itération courante
19
Sommaire
Les variables et les opérateurs
Les instructions de contrôle de Java
les débranchements
Les tableaux
Les tableaux à une dimension
Les tableaux à n dimensions
méthode static
Lire/Ecrire au clavier
20
Tableau en Java
I Structure en mémoire dans laquelle on peut stocker des
données.
I Les données stockées doivent être de même type :
I entiers
I réels
I char
I String
I (un tableau d'objets liés à une classe créée)
I En java, un tableau est alloué dynamiquement. Il possède
toujours une taille xée au départ de sa création.
I Si la taille doit être variable, d'autres structures comme
comme les Objets de type Vector, ArrayList . . .sont utilisées.
21
Tableau à une dimension(1)
I L'opérateur [] est utilisé pour créer un tableau à une dimension
I Déclaration d'un tableau :
int tab[] = {1, 2, 3}; // (1) identique au langage C
int[] tab = {1, 2, 3}; // (2) indique mieux un tableau d'
int
I Les forme (2) indique mieux un tableau d'entiers dont les
valeurs sont initialisées à 1, 2 et 3.
22
Tableau à une dimension(2)
int[] tabEnt; // reference (non initialisee) vers un tableau de
int
tabEnt = new int [10]; // allocation dynamique de 10 int
pour tabEnt
ou encore
int[] tabEnt = new int [10];// tableau de int de 10 elements
I chaque élément du tableau est identié à l'aide d'un d'indice
précisant son rang dans le tableau.
I un message d'erreur s'ache si l'indice permettant d'accéder à
un élément est en dehors de la plage autorisée
I les éléments sont initialisés par défaut à 0 pour les nombres et
à faux pour les tableaux de booléens. 23
Parcours du tableau
int[] valeurs = new int[4];
for(int i=0;i<4;i++)
valeurs[i]=i*i*i;
[Link] = 4
valeurs[0] = 0
valeurs[1] = 1
valeurs[2] = 8
valeurs[3] = 27
24
Tableau à deux dimensions
I Java permet de créer des tableaux de tableaux.
I Chaque élément d'un tableau, peut contenir un autre tableau
et ainsi de suite, sans limitation de principe du nombre de
dimension.
I Déclaration :
type [] [] nomTab = new type [taille1] [taille2] ;
Exemple :
int [] [] tabEntier2 = new int[10] [100] ;
I Autre déclaration : :
int[][] matrice ={{ 0, 1, 4, 3 } , { 5, 7, 9, 11}}; 25
Parcours du tableau
int[][] matrice=new int[2][3];
for (int i=0; i<2; i++){
for (int j=0; j<3; j++){
matrice[i][j] = (i + j)*2;
}}
matrice[0][0] = 0
matrice[0][1] = 2
matrice[0][2] = 4
matrice[1][0] = 2
matrice[1][1] = 4
matrice[1][2] = 6
26
Sommaire
Les variables et les opérateurs
Les instructions de contrôle de Java
les débranchements
Les tableaux
méthode static
Lire/Ecrire au clavier
27
a faire pour l'année prochaine
28
Sommaire
Les variables et les opérateurs
Les instructions de contrôle de Java
les débranchements
Les tableaux
méthode static
Lire/Ecrire au clavier
Premier Programme Java
Saisie de données
28
Hello World !
public class PremierProgramme {
public static void main(String[] argv) {
// Pour acher un commentaire sur une ligne
/* Commentaires sur
plusieurs lignes */
[Link]("Hello Word !");
}
}
Hello World !
29
L'achage des données(1)
I Les messages à l'écran s'ache au travers de la fonction
suivante :
[Link]()
I Achage de la valeur d'une variable :
int valeur = 22 ;
[Link](valeur) ;
À l'écran, le résultat s'affiche ainsi :
22
30
L'achage des données(2)
I Achage d'un commentaire :
[Link]("Le montant est de : " + valeur) ;
ou
[Link](valeur + " correspond au montant
total ") ;
La première instruction affiche à l'écran :
Le montant est de : 22
La seconde :
22 correspond au montant total
31
L'achage des données(3)
I Achage de plusieurs variables :
int v = 5, s = 33 ;
[Link](v + " elements valent au total " + s
+ " FCFA ") ;
5 elements valent au total 33 FCFA
I Achage de la valeur d'une expression arithmétique
int a = 10, b = 5 ;
[Link](a+" fois " + b + " est egal a " + a *
b) ;
32
10 fois 5 est egal a 50
[Link]()
I [Link]() : permet de récupérer un et un seul caractère
saisi au clavier.
[Link]("Entrer votre nom");
int carac = [Link]();
[Link]("le caractere lu : "+ (char) carac);
Entrer votre nom
MOUSSE
le caractère lu : M
I saisir des valeurs ou des noms composés de plusieurs
caractères ?
I utiliser autant d'instructions [Link]() que de 33
caractères à saisir.
Scanner
I Package [Link].
I Propose un ensemble de fonctions de lecture que de types de
variables.
I permet de saisir autant de caractères souhaité
I très facile d'usage avec les valeurs numériques de type entier
(byte, short, int et long) ou réel (oat et double) et des
caractères de type char ou String.
I pour ce faire :
1. importer la classe Scanner // placée au début du programme
2. créer un pbjet de type Scanner
3. utiliser une méthode de la classe Scanner pour lire les
informations saisies au cavier.
34
Exemple complet(1)
import [Link].*;
public class TestLectureClavier {
public static void main (String [] Arg) {
int intLu;
oat floatLu;
double doubleLu;
char charLu;
byte byteLu;
long longLu;
short shortLu;
String stringLu;
Scanner lectureClavier = new Scanner([Link]);
[Link]("Entrez un short : "); 35
shortLu = [Link]();
Exemple complet(2)
[Link]("Entrez un byte : ");
byteLu = [Link]();
[Link]("Entrez un int : ");
intLu = [Link]();
[Link]("Entrez un long : ");
longLu = [Link]();
[Link]("Entrez un oat : ");
floatLu = [Link]();
[Link]("Entrez un double : ");
doubleLu = [Link]();
[Link]("Entrez un String: ");
stringLu = [Link]();
36
Exemple complet(3)
[Link]("Entrez un char : ");
charLu = [Link]().charAt(0);
[Link]("entier : " + intLu);
[Link]("oat : " + floatLu);
[Link]("double : " + doubleLu);
[Link]("char : " + charLu);
[Link]("byte : " + byteLu);
[Link]("short : " + shortLu);
[Link]("String : " + stringLu);
[Link]("long : " + longLu);
}
}
37
Questions
38