Vous êtes sur la page 1sur 37

Cours I

Les bases de la programmation


en Java

Dr Mikaël A. Mousse
mikael.mousse@gmail.com

Université de Parakou
Institut Universitaire de Technologie

Année : 2018-2019

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 1 / 37


Sommaire

1 Les variables et les opérateurs


Les Variables
Les opérateurs
Les Constantes
2 Les instructions de contrôle de Java
Les branchements conditionnels
Les boucles
3 les débranchements
4 Les tableaux
Les tableaux à une dimension
Les tableaux à n dimensions
5 Lire/Ecrire au clavier
Premier Programme Java
Saisie de données

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 2 / 37


Les variables et les opérateurs

Sommaire

1 Les variables et les opérateurs


Les Variables
Les opérateurs
Les Constantes

2 Les instructions de contrôle de Java

3 les débranchements

4 Les tableaux

5 Lire/Ecrire au clavier

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 3 / 37


Les variables et les opérateurs Les Variables

Définition et déclaration

Emplacements de mémoire dans lesquels on peut stocker des


informations de toute sorte en mémoire : des chiffres, des résultats de
calcul, des tableaux, des renseignements fournis par l’utilisateur etc.

Toute variable a un nom, un type et une valeur.

Déclaration générale :  Typedelavariable Nomdelavariable  ;

Trois sortes de variables : les variables d’instance, les variables de


classe et les variables locales.

Deux types de variables : des variables de type simple ou primitif et


des variables de type complexe ou des objets.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 4 / 37


Les variables et les opérateurs Les Variables

Les types primitifs

En java, tout est objet sauf les types de base (primitif).

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 483647
long entier signé sur 64 bits + ou -9 milliards de milliards
float 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

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 5 / 37


Les variables et les opérateurs Les Variables

Exemple

int age = 10;

float salire = 6500.04f;

double d = 0.0;

char = ’c’;
\\Le type chaîne de caractères (type String) est défini comme
\\ une classe Java

String nom = "TOTO"

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 6 / 37


Les variables et les opérateurs Les opérateurs

Les Opérateurs arithmétiques

Ils opèrent sur des variables entières ou réelles afin 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

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 7 / 37


Les variables et les opérateurs Les opérateurs

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

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 8 / 37


Les variables et les opérateurs Les opérateurs

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 (différent)
Les opérateurs logiques : a, n, col, t sont des entiers

&& et logique (a >= 0) && (a <= 15)


|| ou logique (n < 0 || n >= col)
! négation ( !t)
Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 9 / 37
Les variables et les opérateurs Les opérateurs

Promotion Vs Casting(1)

Promotion

Soit l’expression mixte suivante : a*b + n ; avec a et n de type float et


b de type int ;

résulat :
a*b –> (float * (int-> float)) = float car b est promu de int en float
(a*b) + n —> (float + float) donne un résulat float.

Le mécanisme de conversions d’ajustement de types est appelé


promotion de types.
short -> int -> long -> float -> double

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 10 / 37


Les variables et les opérateurs Les opérateurs

Promotion Vs Casting(2)

le type char :
est soit un caracètre ;
soit un code de caractère représenté sur 16 bits. Ex : E correspont au
code 69
soit c1, c2 de type char on a :
c1 + 1 est de type int ((char -> int) + int) -> int
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.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 11 / 37


Les variables et les opérateurs Les opérateurs

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.
(double) correspond en fait à un opérateur unaire dont le rôle est
d’effectuer la conversion dans le type double de l’expression sur
laquelle il porte.
l existe autant d’opérateurs de cast que de types différents (y compris
les types classe que nous rencontrerons ultérieurement).
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 d’exécution.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 12 / 37


Les variables et les opérateurs Les opérateurs

L’opérateur Ternaire

3 opérandes
une autre façon de faire un test de condition sur des données
booléennes

variable = (condition) ? instruction 1 : instruction 2 ;

Exemple : a=10, b=50 ;

int nombre =(a>b) ? 1 : 2 ;

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 13 / 37


Les variables et les opérateurs Les Constantes

Les Constantes

Une constante est une variable dont la valeur reste inchangée par la
suite
Le mot clé final est utilisé avant le type de la variable
L’identificateur de la constante est souvent écrit en majuscule

Exemple : \\
final int const = 10;

final float tva = 12.5f;

final double PI = 3.1415926535;

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 14 / 37


Les instructions de contrôle de Java

Sommaire

1 Les variables et les opérateurs

2 Les instructions de contrôle de Java


Les branchements conditionnels
Les boucles

3 les débranchements

4 Les tableaux

5 Lire/Ecrire au clavier

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 15 / 37


Les instructions de contrôle de Java Les branchements conditionnels

if, switch

switch (expression) {
if (condition) { case constante1 :
... instr11;
} else if (condition) { instr12;
... break;
} else { case constante2 :
... ...
} default :
...
}

On ne peut utiliser switch qu’avec des types primitifs d’une taille


maximum de 32 bits (byte, short, int, char).
Si une instruction case ne contient pas de break alors les traitements
associés au case suivant sont exécutés.
Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 16 / 37
Les instructions de contrôle de Java Les boucles

while, do .. while, for

while (conditon) do{ for (init;condition;modif){


{ ...//instructions ...//instructions
... //instructions }while(condition); }
}

while : le code est exécuté tant que la condition est vraie.


do .. while : le code est au moins exécuté une fois quelque soit la
valeur de la condition.
for : le code s’exécute à chaque fois la condition est vraie.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 17 / 37


les débranchements

Sommaire

1 Les variables et les opérateurs

2 Les instructions de contrôle de Java

3 les débranchements

4 Les tableaux

5 Lire/Ecrire au clavier

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 18 / 37


les débranchements

Les débranchements

Ce sont des intructions utilisées dans les boucles.


break : il permet de quitter une boucle ou un branchement.
continue : il permet de sauter d’itération.

while (...) {
...
break; //sortie immdiate de la boucle
...
}

Dans une structure de contrôle while, do ... while et for, l’instruction


continue produit l’abandon de l’itération courante

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 19 / 37


Les tableaux

Sommaire

1 Les variables et les opérateurs

2 Les instructions de contrôle de Java

3 les débranchements

4 Les tableaux
Les tableaux à une dimension
Les tableaux à n dimensions

5 Lire/Ecrire au clavier

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 20 / 37


Les tableaux Les tableaux à une dimension

Tableau en Java

Structure en mémoire dans laquelle on peut stocker des données.


Les données stockées doivent être de même type :
entiers
réels
char
String
(un tableau d’objets liés à une classe créée)
En java, un tableau est alloué dynamiquement. Il possède toujours une
taille fixée au départ de sa création.
Si la taille doit être variable, d’autres structures comme comme les
Objets de type Vector, ArrayList . . .sont utilisées.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 21 / 37


Les tableaux Les tableaux à une dimension

Tableau à une dimension(1)

L’opérateur [] est utilisé pour créer un tableau à une dimension


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 dint

Les forme (2) indique mieux un tableau d’entiers dont les valeurs sont
initialisées à 1, 2 et 3.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 22 / 37


Les tableaux Les tableaux à une dimension

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

chaque élément du tableau est identifié à l’aide d’un d’indice précisant


son rang dans le tableau.
un message d’erreur s’affiche si l’indice permettant d’accéder à un
élément est en dehors de la plage autorisée
les éléments sont initialisés par défaut à 0 pour les nombres et à faux
pour les tableaux de booléens.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 23 / 37


Les tableaux Les tableaux à une dimension

Parcours du tableau

int[] valeurs = new int[4];


for(int i=0;i<4;i++)
valeurs[i]=i∗i∗i;

valeurs.length = 4
valeurs[0] = 0
valeurs[1] = 1
valeurs[2] = 8
valeurs[3] = 27

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 24 / 37


Les tableaux Les tableaux à n dimensions

Tableau à deux dimensions

Java permet de créer des tableaux de tableaux.


Chaque élément d’un tableau, peut contenir un autre tableau et ainsi
de suite, sans limitation de principe du nombre de dimension.
Déclaration :

type [] [] nomTab = new type [taille1] [taille2] ;


Exemple :
int [] [] tabEntier2 = new int[10] [100] ;

Autre déclaration : :

int[][] matrice ={{ 0, 1, 4, 3 } , { 5, 7, 9, 11}};

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 25 / 37


Les tableaux Les tableaux à n dimensions

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

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 26 / 37


Lire/Ecrire au clavier

Sommaire

1 Les variables et les opérateurs

2 Les instructions de contrôle de Java

3 les débranchements

4 Les tableaux

5 Lire/Ecrire au clavier
Premier Programme Java
Saisie de données

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 27 / 37


Lire/Ecrire au clavier Premier Programme Java

Hello World !

public class PremierProgramme {


public static void main(String[] argv) {
// Pour afficher un commentaire sur une ligne
/∗ Commentaires sur
plusieurs lignes ∗/
System.out.println("Hello Word !");
}
}

Hello World !

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 28 / 37


Lire/Ecrire au clavier Premier Programme Java

L’affichage des données(1)

Les messages à l’écran s’affiche au travers de la fonction suivante :


System.out.print()

Affichage de la valeur d’une variable :

int valeur = 22 ;
System.out.print(valeur) ;

À l’écran, le résultat s’affiche ainsi :


22

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 29 / 37


Lire/Ecrire au clavier Premier Programme Java

L’affichage des données(2)

Affichage d’un commentaire :

System.out.print("Le montant est de : " + valeur) ;


ou
System.out.print(valeur + " correspond au montant total ") ;

La première instruction affiche à l’écran :


Le montant est de : 22
La seconde :
22 correspond au montant total

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 30 / 37


Lire/Ecrire au clavier Premier Programme Java

L’affichage des données(3)


Affichage de plusieurs variables :

int v = 5, s = 33 ;
System.out.print(v + " elements valent au total " + s + "
FCFA ") ;

5 elements valent au total 33 FCFA

Affichage de la valeur d’une expression arithmétique

int a = 10, b = 5 ;
System.out.print(a+" fois " + b + " est egal a " + a ∗ b) ;

10 plus 5 est egal a 15

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 31 / 37


Lire/Ecrire au clavier Saisie de données

System.in.read()

System.in.read() : permet de récupérer un et un seul caractère saisi au


clavier.

System.out.println("Entrer votre nom");


int carac = System.in.read();
System.out.println("le caractre lu : "+ (char) carac);

Entrer votre nom


EZIN
le caractère lu : E

saisir des valeurs ou des noms composés de plusieurs caractères ?


utiliser autant d’instructions System.in.read() que de caractères à saisir.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 32 / 37


Lire/Ecrire au clavier Saisie de données

Scanner

Package java.util.
Propose un ensemble de fonctions de lecture que de types de variables.
permet de saisir autant de caractères souhaité
très facile d’usage avec les valeurs numériques de type entier (byte,
short, int et long) ou réel (float et double) et des caractères de type
char ou String.

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.

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 33 / 37


Lire/Ecrire au clavier Saisie de données

Exemple complet(1)

import java.util.∗;
public class TestLectureClavier {
public static void main (String [] Arg) {
int intLu;
float floatLu;
double doubleLu;
char charLu;
byte byteLu;
long longLu;
short shortLu;
String stringLu;
Scanner lectureClavier = new Scanner(System.in);
System.out.println("Entrez un short : ");
shortLu = lectureClavier.nextShort();
Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 34 / 37
Lire/Ecrire au clavier Saisie de données

Exemple complet(2)

System.out.println("Entrez un byte : ");


byteLu = lectureClavier.nextByte();
System.out.println("Entrez un int : ");
intLu = lectureClavier.nextInt();
System.out.println("Entrez un long : ");
longLu = lectureClavier.nextLong();
System.out.println("Entrez un float : ");
floatLu = lectureClavier.nextFloat();
System.out.println("Entrez un double : ");
doubleLu = lectureClavier.nextDouble();
System.out.println("Entrez un String: ");
stringLu = lectureClavier.next();

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 35 / 37


Lire/Ecrire au clavier Saisie de données

Exemple complet(3)

System.out.println("Entrez un char : ");


charLu = lectureClavier.next().charAt(0);
System.out.println("entier : " + intLu);
System.out.println("float : " + floatLu);
System.out.println("double : " + doubleLu);
System.out.println("char : " + charLu);
System.out.println("byte : " + byteLu);
System.out.println("short : " + shortLu);
System.out.println("String : " + stringLu);
System.out.println("long : " + longLu);
}
}

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 36 / 37


Lire/Ecrire au clavier Saisie de données

Questions

Dr. M.A. Mousse (IUT Parakou) Projet informatique 2018-2019 37 / 37