Vous êtes sur la page 1sur 34

Programmation orientée objet : Java

A EL GHAZI 30/12/2022 1
OPÉRATEURS D’INCRÉMENTATION ET DE
DÉCRÉMENTATION

§ ++ i : expression qui incrémente de 1 la valeur de i, et sa valeur est celle de i après


incrémentation

§ si la valeur de i est 5, l'expression : n = ++i - 5 affectera à i la valeur 6 et à n la valeur 1.

§ n = i++ - 5 (n==0 , i++ vaut 5, i vaut 6)

§ On dit que ++ est:


-un opérateur de pré incrémentation lorsqu'il est placé à gauche
-un opérateur de post incrémentation lorsqu'il est placé à droite
OPÉRATEURS D’INCRÉMENTATION ET DE
DÉCRÉMENTATION
§ Par exemple, le code suivant attribue la valeur 2
autant à i qu'à j :
ú i = 1;
ú j = ++i;
§ Mais les lignes suivantes attribuent la valeur 2 à i et
la valeur 1 à j:
ú i = 1;
ú j = i++;
OPÉRATEURS D’INCRÉMENTATION ET DE
DÉCRÉMENTATION

§ De manière similaire, l'opérateur - - décrémente d'une unité son


seul opérande numérique

§ On dit que -- est:


-un opérateur de pré décrémentation lorsqu'il est placé à gauche
-un opérateur de post décrémentation lorsqu'il est placé à droite
CONVERSIONS DE TYPE

§ Java autorise la conversion entre des valeurs entières


et des valeurs à virgule flottante.

§ Les types char peuvent être convertis en types


entiers et à virgule flottante et vice versa.

§ Boolean représente le seul type primitif qui ne peut


pas être converti en un autre type primitif Java, et
vice versa.
CONVERSIONS DE TYPE

§ Il existe deux types de conversion de base:


ú Une conversion élargissante se produit lorsqu'une valeur d'un type est
convertie vers un type plus large.
ú Une conversion restrictive se produit lorsqu'une valeur est convertie vers un
type qui est représenté avec moins de bits.
§ Java exécute automatiquement les conversions élargissantes:
ú short a =5 ;
ú int i = a;

A.ELGHAZI 30/12/2022 7
CONVERSIONS DE TYPE

§ Cependant, les conversions restrictives ne sont pas toujours sans


danger.
ú int i = 13;
ú byte b = i; // le compilateur n’autorise pas ceci

§ Vous pouvez effectuer un transtypage (cast) en plaçant le nom du


type désiré entre parenthèses devant la valeur à convertir.
CONVERSIONS DE TYPE

§ Exemple:
ú Int i ; byte b = (byte) i; //oblige la valaur int à etre
convertie en une valeur byte

ú i = (int) 13.456; // transforme cette valeur littérale de type


double en valeur 13 entière
CONVERSIONS DE TYPE

§ Le type char agit comme un type entier dans la


plupart des situations
§ Exemple:
ú char c = ’f';
ú int i2 = c; // la conversion d’une valeur char en une valeur
int
CONVERSIONS DE TYPE

§ Le tableau 1 indique quels types primitifs peuvent être


convertis vers d’autres types et comment la conversion a
lieu.
ú N: Dans le tableau signifie que la conversion ne peut pas avoir
lieu.
ú Y: Signifie que la conversion correspond à une conversion
élargissante, exécutée par conséquent automatiquement et
implicitement par Java.
ú C : Signifie que la conversion est restrictive et nécessite un
transtypage explicite.
ú Y*: Signifie qu'il s'agit d'une conversion élargissante automatique
mais qu'au moins quelques chiffres significatifs de la valeur
pourraient être perdus dans la conversion.
TABLEAU 1 : CONVERSIONS DETYPES PRIMITIFS

Conversion Conversions vers

de boolean byte short char int long float double

boolean - N N N N N N N
byte N - Y C Y Y Y Y
short N C - C Y Y Y Y
char N C C - Y Y Y Y
int N C C C - Y Y* Y
long N C C C C - Y* Y*
float N C C C C C - Y
double N C C C C C C -
L’OPÉRATEUR CONDITIONNEL

syntaxe : condition ? Valeur si vrai : valeur si faux


z = (x==y) ? a : b ; on utilise la valeur de l’expression
a>b ? i++ : i-- ; la valeur de l’expression n’est pas utilisée

x>=0 ? x : -x; correspond à la valeur absolue


m = ((a>b) ? a : b); affecte à m le maximum de a et b

A.ELGHAZI 30/12/2022 13
INSTRUCTIONS ET STRUCTURES DE CONTRÔLE

A.ELGHAZI 30/12/2022 14
INSTRUCTIONS DE BRANCHEMENT CONDITIONNEL

§ if ----- else
if (expression1)
Instruction1
else if (expression2)
Instruction2
...
§ Le else est facultatif
If (expression)
instruction
INSTRUCTIONS DE BRANCHEMENT CONDITIONNEL

§ Switch
switch (expression)
{ case constante1 :
liste d'instructions1;
break;
case constante2 :
liste d'instructions2;
break;
...
default :
liste d'instructionsn;
}
LES BOUCLES
§ while :
while (expression)
instruction;
Tant que expression est vraie, instruction est exécutée.
Si expression est faux instruction ne sera jamais exécutée
int i=1;
While (i < 10)
{
System.out.println(" i = “+i);
i++;
}
LES BOUCLES

§ do ---- while :
do
instruction;
while (expression);
Ici l'instruction est exécutée tant que expression est vraie.
Instruction est toujours exécutée au moins une fois.
int i=0;
do
{
System.out.println(" i = “+i);
i++;
}
while ((i <=0) || (i > 10));
LA BOUCLE FOR:
§ for :
for ( expr1; expr2; expr3)
instruction;

équivalent à :

expr1;
while (expr2);
{
instruction;
expr3;
}
COMMENTAIRES : FOR
§ Chacune des trois expressions est facultative. Ainsi
ces constructions sont équivalentes à l'instruction for
de notre premier exemple de programme :

i=1;
for (i=1 ; i<=5 ; i++ ) for ( ; i<=5 ; )
{ {
System.out.println(" i = “+i); System.out.println(" i = “+i);
} i++ ;
}
COMMENTAIRES : FOR

§ Lorsque l'expr2 est absente, elle est considérée comme


vraie.
§ On peut grouper plusieurs actions dans une expression. Ainsi
:
for ( i=0, j=1, k=5 ; ; )
est équivalent à :
j=1 ; k=5 ;
for ( i=0 ; ; )
ou encore à :
i=0 ; j=1 ; k=5 ;
for ( ; ; )
INSTRUCTIONS DE BRANCHEMENT NON CONDITIONNEL

§ break : vu en switch, en général permet d'interrompre le


déroulement d'une boucle, et passe à la première instruction qui
suit la boucle.
int i ;
for (i = 0; i < 5; i++)
{
System.out.println(" i = “+i);
if (i==3)
break;
}
System.out.println(" i = “+i);
INSTRUCTIONS DE BRANCHEMENT NON CONDITIONNEL

§ continue : permet de passer directement de la boucle suivante


sans exécuter les autres instructions de la boucle.
int i;
for (i = 0; i < 5; i++)
{
if (i==3)
continue;
System.out.println(" i = “+i);
}
System.out.println(" i = “+i);
UTILISATION DE L'OBJET SCANNER

§ Pour lire au clavier en java, nous allons devoir utiliser un


objet de type Scanner.
§ Cet objet peut prendre différents paramètres, mais ici,
nous n'en utiliserons qu'un. Celui qui correspond
justement à l'entrée standard en Java : System.in.
§ Avant de dire à Java de lire ce que nous allons taper au
clavier, nous devrons instancier un objet Scanner.
Scanner sc = new Scanner(System.in);
UTILISATION DE L'OBJET SCANNER

§ Pour pouvoir utiliser un objet Scanner, nous devons dire à Java où trouver
cet objet.

§ Nous devons importer la classe Scanner, grâce à l'instruction import. La


classe que nous voulons se trouve dans le package java.util.

import java.util.Scanner; // importe la classe Scanner du package java.util

import java.util.*; //importe toutes les classes du package java.util


UTILISATION DE L'OBJET SCANNER
import java.util.Scanner;

public class TestScanner {

public static void main(String[] args) {


Scanner s=new Scanner(System.in);
System.out.println("Donnez une chaîne !!!");
String str= s.nextLine();
System.out.println("Merci pour "+ str);
System.out.println("Donner un entier!!!!");
int n= s.nextInt();
System.out.println("Merci pour"+ n);
}
}
UTILISATION DE L'OBJET SCANNER

§ De façon générale, pour récupérer un type de variable, il suffit d'appeler


next<Type de variable commençant par une majuscule>
§ Exemple:
ú Pour récupérer un int : nextInt()
ú Pour récupérer un float: nextFloat()
ú Pour récupérer un double: nextDouble()
ú …

§ Pour les chaîne de caractères : nextLine().


UTILISATION DE L'OBJET SCANNER
§ le type primitive char n'est pas pris en compte par la classe Scanner ;
§ Pour récupérer un caractère on utilise la méthode charAt(0) de la classe String :

System.out.println("Saisissez une lettre :");


Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char carac = str.charAt(0);
System.out.println("Vous avez saisi le caractère : " + carac);
EXERCICE : MENTION

Ecrire un programme qui lit les moyennes générales d’un nombre d’étudiant
et affiche la mention pour chaque étudiant :
ú Echec pour une MG inférieur à 10.
ú Passable pour une MG entre 10 et 12.
ú Assez Bien pour une MG entre 12 et 14.
ú Bien pour une MG entre 14 et 16
ú Très Bien pour une MG supérieur ou égale à 16.
EXERCICE : LE TEMPS PLUS UNE SECONDE

Un temps donné est représenté sous la forme : heure, minute et


seconde de type Entier. On veut lui ajouter une seconde et afficher avec
la même représentation le temps ainsi obtenu.
Ecrire un programme qui effectue la saisie des données, réalise le calcul
et affiche les résultats.
EXERCICES

§ Ecrire un programme qui demande à un utilisateur


combien de marches il veut dessiner à l’écran.

A.ELGHAZI 30/12/2022 33
EXERCICES

§ Ecrire un programme, permettant à deux joueurs de


se défier au lancer de deux dés.
§ Le joueur qui gagne doit faire le score le plus haut,
mais attention, un score supérieur à 9 et c’est perdu !
§ Chaque joueur peut recommencer autant de fois qu’il
le souhaite pour obtenir le meilleur score possible.

A.ELGHAZI 30/12/2022 34

Vous aimerez peut-être aussi