Professional Documents
Culture Documents
Gerald
Monard
Concepts fondamentaux
ements
Constantes et variables
Une constante est un valeur non modifiable. Une variable peut
i = 1;
i = 10;
Expressions
Une expression est une combinaison de constantes, de variables et
doperateurs
utilises
1
(2+3)10
autres exemples:
1
2
3
6
i
6+ i
Operateurs
arithmetiques
operateurs
arithmetiques
en langage Java.
Addition
Soustraction
Multiplication
Division
Modulo
Les operateurs
de multiplication et de division sont prioritaires par
rapport a` laddition et a` la soustraction.
on peut utiliser les parentheses
`
Pour modifier lordre de priorite,
().
1
2+310
est different
de
1
(2+3)10
Instructions
i = 1;
System . o u t . p r i n t f ( " Hello a tous\n" ) ;
System . e x i t ( 0 ) ; / / f i n normal d un programme
Blocs dinstructions
{
i = 2;
j = i 10;
}
Declarations
Il faut declarer
toutes les variables avant de sen servir. Une
declaration
precise
un type et comporte une liste de une ou plusieurs
variables de ce type. Par exemple :
1
2
3
i n t mini , maxi , i n t e r v a l l e ;
char c ;
/ on peut m e t t r e un commentaire pour i n d i q u e r
a` q u o i s e r t l a v a r i a b l e /
On peut egalement
initialiser les variables au moment ou` on les
declare.
Si le nom de variable est suivi du signe = et dune
expression, cette expression donne la valeur initiale de la variable.
1
2
3
i n t i = 0;
double eps = 1 . 0 e 5;
char a = a ;
Typage
est essentiel car il permet dindiquer au
Le typage des donnees
i n t i = 10;
i n t j = 3;
double x = 1 0 . ;
double y = 3 . ;
System . o u t . p r i n t l n ( i / j ) ;
System . o u t . p r i n t l n ( x / y ) ;
/ / d i v i s i o n dans l e s e n t i e r s
/ / d i v i s i o n dans l e s r e e l s
Type int
Le mot-cle int correspond au type entier applicable aux variables. Un
nombre entier est une valeur sans partie decimale. En consequence,
une division enti`ere a comme effet de tronquer le resultat par rapport
a` la valeur decimale.
Typage
taille (octets)
valeur mini.
valeur maxi.
int
short
-32768
32767
byte
-128
127
long
Type float
A la difference
dun nombre entier, un nombre a` virgule flottante
de la partie entiere
` par une
comprend une partie decimale
dissociee
virgule. En Java, le type float definit les nombres decimaux, aussi
appeles nombres reels. En general, la precision du type float est de
sept chiffres apr`es la virgule.
Type double
Notation scientifique
a` laide de la notation
Les valeurs decimales
peuvent etre
exprimees
scientifique.
Ainsi un nombre se composera dune mantisse et dun exposant,
indifferemment
separ
es
par e ou E.
Type char
Un objet de type char correspond a` un e lement du jeu de caract`eres
utilise par lordinateur.
Un caract`ere compris entre deux guillemets simples () sappelle une
constante caract`eres. Par exemple, a, A, b, 7 sont des
constantes caract`eres du jeu de caract`eres ASCII.
Il existe un correspondance entre chaque caract`ere et un code
numerique unique (compris entre 0 et 255). Par exemple, les
caract`eres A, a, B, et b ont respectivement comme valeur
numerique unique 65, 97, 66 et 98. Ainsi les deux instructions
daffectation suivantes sont e quivalentes :
1
2
3
char x ;
x = A ;
x = 65;
` dechappement
dun caractere
Par exemple \n correspond au retour chariot
et au passage a` une nouvelle ligne.
Exemple :
Caract`ere
Description
\n
\t
\r
\\
ins`ere le caract`ere \
\"
La methode
System.out.printf
La methode
System.out.printf prend comme arguments une chane
de caract`ere pouvant contenir des indicateurs de formats.
Par exemple, dans :
1
Syntaxe de System.out.printf
1
System . o u t . p r i n t f ( S t r i n g format ,
...);
Indicateurs
Description
%d %i
Format entier
%c
`
Format caractere
%f
Format decimal
(virgule flottante)
%e %E
%g
%G
%s
`
Format chane de caractere
%%
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
p u b l i c c l a s s Main {
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args ) {
System . o u t . p r i n t f ( "%d\n" , 1 ) ;
System . o u t . p r i n t f ( "%f\n" , 0 . 1 0 ) ;
System . o u t . p r i n t f ( "%e\n" , 0 . 1 0 ) ;
System . o u t . p r i n t f ( "%E\n" , 0 . 1 0 ) ;
System . o u t . p r i n t f ( "%g\n" , 0 . 1 0 ) ;
System . o u t . p r i n t f ( "%G\n" , 0 . 0 0 0 0 0 1 0 ) ;
System . o u t .
System . o u t .
System . o u t .
System . o u t .
System . o u t .
System . o u t .
System . o u t .
printf
printf
printf
printf
printf
printf
printf
Operateurs
En plus de operateurs
standards vus precedemment
(+, -, *, /, %) le
`
:
langage Java possede
dautres operateurs
plus evolu
es
des operateurs
arithmetiques
daffectation
des operateurs
unaires
ementation
des operateurs
dincrementation
et de decr
des operateurs
relationnels
des operateurs
de conversion de type
Operateurs
arithmetiques
daffectation
Cest loperateur
=, a` ne pas confondre avec le = mathematique.
Par exemple, a=5 signifie que lon affecte a` la variable a la valeur 5.
Operateurs
unaires
Un operateur
unaire en Java est loperateur
- : moins, qui transforme
x = 1.234;
y = x ;
z = x y ; / e q u i v a l e n t a` z = x (y ) ;
e q u i v a l e n t a` z = x + y ; /
ementation
Operateurs
dincrementation
et de decr
Le langage Java propose une solution simple au cas ou` lon veut
ementer
` : loperateur
incrementer
ou decr
de 1 une valeur entiere
++
ou loperateur
--.
decr
1 a` une variable x : x++ (resp. x--) ou ++x (resp. --x).
x = x + 1;
x += 1 ;
x ++;
++x ;
(lincrementation
a lieu avant laffectation), de x++ qui correspond a`
` laffectation)..
une post-incrementation
(lincrementation
a lieu apres
Exemple :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
p u b l i c c l a s s Main
{
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args )
{
int a,b,c ,d, result ;
a = 1;
b = 1;
c = 1;
d = 1;
r e s u l t = a ++;
System . o u t . p r i n t f ( " Resultat de a++
r e s u l t = ++b ;
System . o u t . p r i n t f ( " Resultat de ++b
r e s u l t = c ;
System . o u t . p r i n t f ( " Resultat de c-r e s u l t = d ;
System . o u t . p r i n t f ( " Resultat de --d
}
}
: %d\n" , r e s u l t ) ;
: %d\n" , r e s u l t ) ;
: %d\n" , r e s u l t ) ;
: %d\n" , r e s u l t ) ;
Operateurs
de conversion de types
Il est possible de convertir en Java un type en un autre de type en
eder
faisant prec
loperande
de loperateur
de conversion.
erale
La syntaxe gen
est
1
( type ) x
Exemple :
1
2
3
4
5
6
7
8
9
10
11
12
p u b l i c c l a s s Main
{
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args )
{
int x, y;
x = 7;
y = 5;
System . o u t . p r i n t f ( "x = %d et y = %d\n" , x , y ) ;
System . o u t . p r i n t f ( "x / y = %d\n" , x / y ) ;
System . o u t . p r i n t f ( "( float ) x/y = %f\n" , ( f l o a t ) x / y ) ;
}
}
Methodes
(de classe)
Les methodes
(ou fonctions) permettent de regrouper des instructions
a` volonte.
s t a t i c i n t add entiers ( i n t x , i n t y )
{
int resultat ;
r e s u l t a t = x+y ;
return ( resultat ) ;
}
les methodes
dobjets
les methodes
de classes.
Nom dune methode
declaircir
lutilisateur sur le traitement realis
e par la methode.
par
Le type dune methode
correspond au type de la valeur renvoyee
la methode
(dans lexemple, add entiers est de type int ).
Si une methode ne renvoie aucune donnee, alors elle est de type void.
1
2
3
4
5
void a f f i c h e ( i n t a , f l o a t y )
{
p r i n t f ( " Voici un entier : %d\n" , a ) ;
p r i n t f ( " Voici un flottant : %f\n" , y ) ;
}
Arguments dune methode
methode
les traite lors de son execution.
Ces informations sappellent
`
` le
les arguments. Largument figure entre parentheses
juste apres
nom de la methode
qui va lexploiter.
Les
Le nombre darguments varie selon le traitement realis
e.
par des
arguments transmis a` une meme
fonction sont separ
es
virgules.
`
Si une methode
ne requiert pas darguments, les parentheses
sont
alors vides.
Debut
et fin dune methode
dune methode.
contenant declarations
de variables et instructions qui sexecutent
sequentiellement
lors de lappel de la methode.
Les methodes
ne representent
que des definitions
informatiques
ees
que si on les appelle.
dinstructions a` traiter, elles ne sont execut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
p u b l i c c l a s s Main {
s t a t i c v o i d a f f i c h e ( i n t a , double y ) {
System . o u t . p r i n t f ( " Voici un entier : %d\n" , a ) ;
System . o u t . p r i n t f ( " Voici un flottant : %f\n" , y ) ;
}
s t a t i c i n t add entiers ( i n t x , i n t y ) {
int resultat ;
r e s u l t a t = x+y ;
return ( resultat ) ;
}
public
int
int
int
s t a t i c v o i d main ( S t r i n g [ ] args ) {
a;
b;
c;
a = 5;
b = 7;
c = add entiers (a , b ) ;
affiche (c ,3.56);
a = add entiers (c , a ) ;
}
}
Booleens
et operations
sur les booleens
des booleens.
Une variable de type booleen
ne peut posseder
que
deux valeurs: true ou false.
Operateur
Description
||
ou logique
&&
et logique
non logique
1
2
3
4
5
6
7
8
9
10
11
12
p u b l i c c l a s s Main
{
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args )
{
boolean v = t r u e ;
boolean f = f a l s e ;
System . o u t . p r i n t f ( "vrai ou faux : v
System . o u t . p r i n t f ( "vrai et faux : v
System . o u t . p r i n t f ( "non vrai
:
System . o u t . p r i n t f ( "non faux
:
}
}
|| f : %b\n" ,
&& f : %b\n" ,
!v
: %b\n" ,
!f
: %b\n" ,
v | | f );
v && f ) ;
!v);
! f );
De plus il existe des operateurs
de comparaison qui permettent de
comparer deux expressions a` la fois :
Operateur
Description
==
egal
a`
!=
non egal
a`
>
superieur
a`
<
inferieur
a`
>=
superieur
ou egal
a`
<=
inferieur
ou egal
a`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
p u b l i c c l a s s Main
{
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args )
{
int x, y;
double z ;
x = 7;
y = 25;
z = 24.46;
System . o u t . p r i n t f ( " x = %d, y = %d, z = %f\n" , x , y , z ) ;
System . o u t . p r i n t f ( " x >= y : %b\n" , x >= y ) ;
System . o u t . p r i n t f ( " x == y : %b\n" , x == y ) ;
System . o u t . p r i n t f ( " x < z : %b\n" , x < z ) ;
System . o u t . p r i n t f ( " y > z : %b\n" , y > z ) ;
System . o u t . p r i n t f ( " x != y - 18 : %b\n" , x ! = y 1 8 ) ;
System . o u t . p r i n t f ( " x + y != z : %b\n" , x + y ! = z ) ;
}
}
Instructions conditionnelles
dexecuter
des instructions sous conditions.
dun nombre x ne peut se calculer que
Par exemple, la racine carree
il est donc
si x est positif. Avant tout calcul dune racine carree,
necessaire
de verifier
la positivite de la variable.
Cela se fait en Java en utilisant
1
2
i f ( expression conditionnelle )
instruction ;
1
2
3
4
5
6
7
8
9
10
11
12
13
p u b l i c c l a s s Main
{
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] args )
{
float x;
x = 5;
i f ( x >= 0 ) {
System . o u t . p r i n t f ( "La racine carr
e e de %f vaut %f\n" ,
x , Math . s q r t ( x ) ) ;
}
}
}
i f ( expression conditionnelle )
instruction1 ;
else
instruction2 ;
` le if , il faut penser a`
Attention : si il y a plusieurs instructions apres
introduire des { }.
Si expression_conditionnelle vaut true alors on execute
instruction1, sinon (dans le cas ou expression_conditionnelle
vaut false) on execute instruction2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/ c a l c u l d une v a l e u r absolue /
s t a t i c double v a l e u r a b s o l u e ( double x )
{
double f a b s ;
/ s i x e s t p o s i t i f , l a v a l e u r absolue de x e s t x /
/ s i x e s t n e g a t i f , l a v a l e u r absolue de x e s t x /
i f ( x >= 0 ) {
fabs = x ;
} else {
f a b s = x ;
}
r e t u r n ( fabs ) ;
}
Lensemble if (...) inst1 else inst2 est percue comme une seule
instruction. Il peut donc e tre insere dans un ensemble
if (...) inst1 else inst2 de mani`ere a` former des if imbriques.
Ex. : la suite de Fibonnacci (Un = Un1 + Un2 avec U0 = 0 et U1 = 1) :
1
2
3
4
5
6
7
8
9
10
11
12