ch2 Java-1
ch2 Java-1
1 / 104
Plan
1 Variables
Typage statique
Typage dynamique
2 Opérations sur les variables
Variables numériques
Variables textuelles
3 Classe Math
4 Lecture d’une saisie
5 Structures conditionnelles
if
if ... else
if ... else if ... else
switch
Expression ternaire
2 / 104
Plan
6 Structures itératives
while
do ... while
for
7 Tableaux
Tableaux à une dimension
Tableaux à deux dimensions
8 Constantes
9 Méthodes
3 / 104
Variables
Java
Une variable ?
Pointeur vers une zone mémoire
Permettant de stocker une ou plusieurs données
Pouvant avoir plusieurs valeurs différentes dans un programme
4 / 104
Variables
Java
Une variable ?
Pointeur vers une zone mémoire
Permettant de stocker une ou plusieurs données
Pouvant avoir plusieurs valeurs différentes dans un programme
4 / 104
Variables
Java
5 / 104
Variables
Java
Utiliser le CamelCase
H I ©
Caractère espace non autorisé
U EL
O
LM
Underscore non autorisé comme nom de variable depuis Java 9
e f E
Privilégier les noms en relation avec le contexte
r
un c
Ne pas choisirA
h
mot-clé du langage
©
Ne pas choisir un ancien mot-clé du langage comme goto ou const
(liste de mots-clés : [Link]
java/nutsandbolts/_keywords.html)
Sensible à la casse
6 / 104
Variables Typage statique
Java
7 / 104
Variables Typage statique
Java
7 / 104
Variables Typage statique
Java
Principaux types primitifs en Java
H I
int : entier codé sur 4 octets (entre -2 147 483 648 et 2 147 483 647) ©
U EL
long : entier codé sur 8 octets (entre -9 223 372 036 854 775 808 et +9 223 372 036 854
O
LM
775 807)
f E
float : nombre à virgule codé sur 4 octets
r e
ch
©A
double : nombre à virgule codé sur 8 octets
8 / 104
Variables Typage statique
Java
Principaux types primitifs en Java
H I
int : entier codé sur 4 octets (entre -2 147 483 648 et 2 147 483 647) ©
U EL
long : entier codé sur 8 octets (entre -9 223 372 036 854 775 808 et +9 223 372 036 854
O
LM
775 807)
f E
float : nombre à virgule codé sur 4 octets
r e
ch
©A
double : nombre à virgule codé sur 8 octets
8 / 104
Variables Typage statique
Java
Exemple
int x;
9 / 104
Variables Typage statique
Java
Exemple
int x;
9 / 104
Variables Typage statique
Java
Exemple
int x;
9 / 104
Variables Typage dynamique
Java
10 / 104
Variables Typage dynamique
Java
Remarque
10 / 104
Variables Typage dynamique
Java
Exemple
var x = 10;
11 / 104
Variables Typage dynamique
Java
Exemple
var x = 10;
11 / 104
Opérations sur les variables Variables numériques
Java
12 / 104
Opérations sur les variables Variables numériques
Java
Quelques raccourcis
i = i + 1 ⇒ i++;
H I ©
i = i - 1 ⇒ i--; U EL
O
i = i + 2 ⇒ i += 2;
f E LM
r e
chi -= 2;
A
i = i - 2 ⇒
©
...
13 / 104
Opérations sur les variables Variables numériques
Java
Exemple de post-incrémentation
int i = 2;
int j = i++;
[Link](i); // affiche 3
[Link](j); // affiche 2
14 / 104
Opérations sur les variables Variables numériques
Java
Exemple de post-incrémentation
int i = 2;
int j = i++;
[Link](i); // affiche 3
[Link](j); // affiche 2
Exemple de pre-incrémentation
int i = 2;
int j = ++i;
[Link](i); // affiche 3
[Link](j); // affiche 3
14 / 104
Opérations sur les variables Variables numériques
Java
Pour convertir le contenu d’une variable (le cast pour les types
compatibles)
int x = 100;
byte z = (byte) x;
[Link](z); // affiche 100
15 / 104
Opérations sur les variables Variables numériques
Java
Pour convertir le contenu d’une variable (le cast pour les types
compatibles)
int x = 100;
byte z = (byte) x;
[Link](z); // affiche 100
15 / 104
Opérations sur les variables Variables numériques
Java
Les emballages (wrapper) de types primitifs (types objets) en Java
f E LM
Double pour double
ch r e
©A
Boolean pour boolean
16 / 104
Opérations sur les variables Variables numériques
Java
Les emballages (wrapper) de types primitifs (types objets) en Java
f E LM
Double pour double
ch r e
©A
Boolean pour boolean
16 / 104
Opérations sur les variables Variables numériques
Java
ch r e
Toutes les classes wrappers contiennent une méthode
©A
([Link](string)) qui permet de
convertir une chaine de caractère en type primitif de cette classe
17 / 104
Opérations sur les variables Variables numériques
Java
Pas besoin de convertir d’un type simple vers son wrapper (ou
inversement)
H I ©
EL
Integer j = 2;
int k = j;
O U
[Link](k); // affiche 2
f E LM
int l = 3;
ch r e
©A
Integer m = l;
[Link](m); // affiche 3
18 / 104
Opérations sur les variables Variables numériques
Java
Pour connaı̂tre la valeur max autorisée par un type numérique
[Link](Integer.MAX_VALUE);
// affiche 2147483647
19 / 104
Opérations sur les variables Variables numériques
Java
Pour connaı̂tre la valeur max autorisée par un type numérique
[Link](Integer.MAX_VALUE);
// affiche 2147483647
La valeur min
[Link](Integer.MIN_VALUE);
// affiche -2147483648
19 / 104
Opérations sur les variables Variables numériques
Java
Pour connaı̂tre la valeur max autorisée par un type numérique
[Link](Integer.MAX_VALUE);
// affiche 2147483647
La valeur min
[Link](Integer.MIN_VALUE);
// affiche -2147483648
Le nombre d’octets
[Link]([Link]);
// affiche 32
19 / 104
Opérations sur les variables Variables textuelles
Java
Exemple d’utilisation d’une chaı̂ne de caractère
20 / 104
Opérations sur les variables Variables textuelles
Java
Exemple d’utilisation d’une chaı̂ne de caractère
On aussi
20 / 104
Opérations sur les variables Variables textuelles
Java
Exemple d’utilisation d’une chaı̂ne de caractère
On aussi
Ou encore
20 / 104
Opérations sur les variables Variables textuelles
Java
Exemple d’utilisation d’une chaı̂ne de caractère
On aussi
Ou encore
20 / 104
Opérations sur les variables Variables textuelles
Java
21 / 104
Opérations sur les variables Variables textuelles
Java
e f E
substring(i, j) : permet d’extraire une sous-chaı̂ne de la chaı̂ne à partir de l’indice i
r
ch
jusqu’au l’indice j - 1
©A
equals(str) : permet de comparer la chaı̂ne à str et retourne true en cas d’égalité,
false sinon.
...
22 / 104
Opérations sur les variables Variables textuelles
Java
23 / 104
Opérations sur les variables Variables textuelles
Java
23 / 104
Opérations sur les variables Variables textuelles
Java
Exemple : replace(old, new)
24 / 104
Opérations sur les variables Variables textuelles
Java
Exemple : replace(old, new)
24 / 104
Opérations sur les variables Variables textuelles
Java
Exemple : replace(old, new)
Exemple : split(regex)
24 / 104
Opérations sur les variables Variables textuelles
Java
Ne jamais comparer les String avec ==
String s1 = "Wick";
String s2 = new String("Wick");
String s3 = "Wick";
H I ©
EL
String s4 = new String("Wick");
O U
[Link](s1 == s2);
// affiche false f E LM
ch r e
©A
[Link](s1 == s3);
// affiche true
[Link](s2 == s4);
// affiche false
25 / 104
Opérations sur les variables Variables textuelles
Java
Explication
H I ©
EL
Les chaı̂nes littérales ()créées sans l’opérateur new) sont optimisées
U
dans le pool de chaı̂nes, ce qui signifie que si une chaı̂ne littérale avec
O
LM
la même valeur existe déjà, Java réutilisera la référence à cette chaı̂ne.
r e f E
ch
Les chaı̂nes créées avec l’opérateur new sont créées explicitement
©A
même si une chaı̂ne avec le même contenu existe déjà dans le pool de
chaı̂nes.
26 / 104
Opérations sur les variables Variables textuelles
Java
Exemple de conversion d’une chaı̂ne de caractère
27 / 104
Opérations sur les variables Variables textuelles
Java
Exemple de conversion d’une chaı̂ne de caractère
Le résultat
27 / 104
Opérations sur les variables Variables textuelles
Java
28 / 104
Opérations sur les variables Variables textuelles
Java
Quatre méthodes pour convertir int en String
int y = 3;
String chaine =((Integer) y).toString();
[Link](chaine); // affiche 3
H I ©
int z = 4;
U EL
String str = [Link](z);
O
[Link](str); // affiche 4
f E LM
int t = 5;
ch r e
©A
String s = [Link](t);
[Link](s); // affiche 5
int u = 6;
String s = "" + u;
[Link](s); // affiche 6
29 / 104
Opérations sur les variables Variables textuelles
Java
30 / 104
Opérations sur les variables Variables textuelles
Java
H I ©
StringBuilder : classe permettant de construire des chaı̂nes de
EL
OU
caractères muables (mutables) [implémente CharSequence]
M
String : classe permettantE deL
h r
immuables (mutables) e f
[impl
construire des chapines de caractères
émente CharSequence]
c
© A : classe permettant de décomposer une chaı̂ne de
StringTokenizer
caractère en tokens selon le·s séparateur·s choisi·s (plus rapide que
[Link]()) [n’implémente pas CharSequence]
...
31 / 104
Opérations sur les variables Variables textuelles
Java
StringBuilder vs String
StringBuilder chars = new StringBuilder("Wick");
[Link]([Link](chars));
// affiche 1510467688
[Link]("y");
H I ©
EL
[Link]([Link](chars));
// affiche 1510467688
O U
String string = "Wick";
f E LM
r e
[Link]([Link](string));
ch
©A
// affiche 1995265320
string += "y";
[Link]([Link](string));
// affiche 746292446
[Link]([Link](chars));
// affiche false
32 / 104
Classe Math
Java
ch r e
[Link](x) : retourne la racine carré de x
©A
[Link](x), [Link](x) et [Link](x) :
retournent l’arrondi de x
[Link]() : retourne une valeur aléatoire entre 0 et 1
...
33 / 104
Classe Math
Java
f E LM
[Link]([Link](1.5)); // affiche 2
r e
[Link]([Link](1.4)); // affiche 2
ch
©A
[Link]([Link](1.9)); // affiche 1
[Link]([Link](1.5)); // affiche 1
[Link]([Link](1.4)); // affiche 1
34 / 104
Classe Math
Java
35 / 104
Classe Math
Java
Et ensuite
[Link](round(1.9)); // affiche 2
[Link](round(1.5)); // affiche 2
[Link](round(1.4)); // affiche 1
[Link](ceil(1.9)); // affiche 2
[Link](ceil(1.5)); // affiche 2
[Link](ceil(1.4)); // affiche 2
[Link](floor(1.9)); // affiche 1
[Link](floor(1.5)); // affiche 1
[Link](floor(1.4)); // affiche 1
35 / 104
Lecture d’une saisie
Java
36 / 104
Lecture d’une saisie
Java
Instancier la classe Scanner
Scanner scanner = new Scanner([Link]);
37 / 104
Lecture d’une saisie
Java
Instancier la classe Scanner
Scanner scanner = new Scanner([Link]);
37 / 104
Lecture d’une saisie
Java
Instancier la classe Scanner
Scanner scanner = new Scanner([Link]);
37 / 104
Lecture d’une saisie
Java
Instancier la classe Scanner
Scanner scanner = new Scanner([Link]);
Fermer le scanner
[Link]();
37 / 104
Lecture d’une saisie
Java
Remarques
H I ©
EL
Pour lire une chaı̂ne de caractère, il faut utiliser la méthode
U
next() ou nextLine() O
f E LM
Pour lire un nombre réel, il faut utiliser la méthode nextFloat()
ch r e
...
©A
38 / 104
Lecture d’une saisie
Java
Exemple avec next()
Scanner scanner = new Scanner([Link]);
// si on saisit "bonjour tout le monde"
String string = [Link]();
[Link](string);
// affiche bonjour
39 / 104
Lecture d’une saisie
Java
Exemple avec next()
Scanner scanner = new Scanner([Link]);
// si on saisit "bonjour tout le monde"
String string = [Link]();
[Link](string);
// affiche bonjour
39 / 104
Lecture d’une saisie
Java
40 / 104
Lecture d’une saisie
Java
Le code suivant déclenche une exception car on ne peut affecter la chaı̂ne "tout" à un
entier
40 / 104
Lecture d’une saisie
Java
41 / 104
Structures conditionnelles if
Java
Exécuter si une condition est vraie
if (condition) {
...
}
42 / 104
Structures conditionnelles if
Java
Exécuter si une condition est vraie
if (condition) {
...
}
Exemple
var x = 3;
if (x >= 0) {
[Link](x + " est positif");
}
42 / 104
Structures conditionnelles if
Java
Exécuter si une condition est vraie
if (condition) {
...
}
Exemple
var x = 3;
if (x >= 0) {
[Link](x + " est positif");
}
42 / 104
Structures conditionnelles if
Java
Opérateurs de comparaison
©A
<= : inférieur ou égal à
43 / 104
Structures conditionnelles if
Java
Opérateurs de comparaison
©A
<= : inférieur ou égal à
43 / 104
Structures conditionnelles if
Java
Exercice
44 / 104
Structures conditionnelles if ... else
Java
Exécuter un premier bloc si une condition est vraie, un deuxième sinon (le bloc else)
if (condition1) {
...
}
else {
...
}
45 / 104
Structures conditionnelles if ... else
Java
Exécuter un premier bloc si une condition est vraie, un deuxième sinon (le bloc else)
if (condition1) {
...
}
else {
...
}
Exemple
var x = 3;
if (x > 0)
{
[Link](x + " est strictement positif");
}
else
{
[Link](x + " est négatif ou nul");
}
45 / 104
Structures conditionnelles if ... else
Java
Exercice
46 / 104
Structures conditionnelles if ... else if ... else
Java
On peut enchaı̂ner les conditions avec else if (et avoir un
troisième bloc voire ... un nième)
if (condition1)
{
...
H I ©
}
U EL
else if (condition2) O
{
f E LM
...
ch r e
}
... ©A
else
{
...
}
47 / 104
Structures conditionnelles if ... else if ... else
Java
Exemple
var x = -3;
if (x > 0)
{
H I ©
EL
[Link](x + " est strictement positif");
}
O U
LM
else if (x < 0)
{
r e f E
[Link](x + " est strictement négatif");
ch
©A
}
else
{
[Link](x + " est nul");
}
48 / 104
Structures conditionnelles if ... else if ... else
Java
Exercice 1
49 / 104
Structures conditionnelles if ... else if ... else
Java
Exercice 2
H I ©
Écrire un code Java qui
U EL
M O
f E L trois entiers a, b et c
demande à l’utilisateur de saisir
affiche le résultath
c derel’équation ax + bx + c = 0.
2
©A
50 / 104
Structures conditionnelles if ... else if ... else
Java
Opérateurs logiques
&& : et
|| : ou
! : non
ˆ : ou exclusif
51 / 104
Structures conditionnelles if ... else if ... else
Java
Opérateurs logiques
&& : et
|| : ou
! : non
ˆ : ou exclusif
51 / 104
Structures conditionnelles if ... else if ... else
Java
Exercice 1
H I ©
Écrire un code Java qui
U EL
O
f E LM
demande à l’utilisateur de saisir une année (un entier),
r e
affiche si l’année saisie est bissextile (voir
ch
A
[Link]
©
).
52 / 104
Structures conditionnelles if ... else if ... else
Java
Exercice 2
53 / 104
Structures conditionnelles if ... else if ... else
Java
Exercice 3
H I ©
Écrire un code Java qui
U EL
O
f E LM
demande à l’utilisateur de saisir deux entiers a et b,
ch r e
détermine et affiche si le résultat de l’addition (sans calculer la
©A
somme) est pair ou impair.
54 / 104
Structures conditionnelles switch
Java
Structure conditionnelle switch : syntaxe
switch (nomVariable) {
case constante-1:
groupe-instructions-1;
break;
H I ©
case constante-2:
UEL
groupe-instructions-2;
O
break;
f E LM
...
case constante-N:
ch r e
©A
groupe-instructions-N;
break;
default:
groupe-instructions-par-défaut;
}
55 / 104
Structures conditionnelles switch
Java
Remarques
56 / 104
Structures conditionnelles switch
Java
Structure conditionnelle avec switch
int x = 5;
switch (x) {
case 1:
[Link]("un");
H I ©
break;
UEL
case 2:
O
[Link]("deux");
f E LM
break;
case 3:
ch r e
©A
[Link]("trois");
break;
default:
[Link]("autre");
}
57 / 104
Structures conditionnelles switch
Java
H I ©
de types simples : int, short, byte et char
UEL
O
LM
de type wrappers correspondants : Integer, Short, Byte et Character
e f E
de type énumération depuis Java 6
r
dec
de type chaı̂neA
h
caractère depuis Java 7
©
58 / 104
Structures conditionnelles switch
Java
Si on supprime un break
String x = "2";
switch (x) {
case "1":
[Link]("un");
H I ©
break;
UEL
case "2": O
E
[Link]("deux");
f LM
case "3":
ch r e
©A
[Link]("trois");
break;
default:
[Link]("autre");
}
// affiche deux trois
59 / 104
Structures conditionnelles switch
Java
Un multi-case pour un seul traitement [Java 7]
var x = 5;
switch (x) {
case 1:
case 2:
[Link]("un ou deux");
H I ©
break;
UEL
case 3: O
E
[Link]("trois");
f LM
break;
ch r e
©A
case 4:
case 5:
[Link]("quatre ou cinq");
break;
default:
[Link]("autre");
}
60 / 104
Structures conditionnelles switch
Java
Un multi-case simplifié [depuis Java 14]
var x = 5;
switch (x) {
case 1, 2:
[Link]("un ou deux");
H I ©
break;
UEL
case 3:
O
[Link]("trois");
f E LM
break;
case 4, 5:
ch r e
©A
[Link]("quatre ou cinq");
break;
default:
[Link]("autre");
}
61 / 104
Structures conditionnelles switch
Java
H I ©
EL
var x = 5;
switch (x) {
O U
LM
case 1, 2 -> [Link]("un ou deux");
r e E
case 3 -> [Link]("trois");
f
case 4, 5 -> [Link]("quatre ou cinq");
ch
©A
default -> [Link]("autre");
}
62 / 104
Structures conditionnelles switch
Java
var x = 5;
switch (x) {
case 1, 2 -> {
H I ©
EL
[Link]("un ou");
[Link]("deux");
O U
LM
}
case 4, 5 -> {
r e E
case 3 -> [Link]("trois");
f
ch
[Link]("quatre ou");
} ©A
[Link]("cinq");
63 / 104
Structures conditionnelles switch
Java
switch peut retourner une valeur [depuis Java 14]
var x = 5;
String result = switch (x) {
case 1, 2 -> {
var tmp = "un ou deux";
H I ©
yield tmp;
UEL
}
O
case 3 -> "trois";
f E LM
case 4, 5 -> {
ch r e
var tmp = "quatre ou cinq";
}
©A
yield tmp;
64 / 104
Structures conditionnelles switch
Java
Remarques
Les case d’un même switch peuvent retourner des valeurs ayant un
type différent.
65 / 104
Structures conditionnelles switch
Java
Exercice
Écrire un programme qui demande à l’utilisateur de saisir l’indice d’un mois (entier
compris entre 1 et 12) et qui retourne le nombre de jours de ce mois
H I ©
U
si l’entier est égal à 1, 3, 5, 7, 8, 10 ou 12 le programmeELaffiche 31
11M
O
E
sinon si l’entier est égal à 4, 6, 9 ou
f L le programme affiche 30
r e
ch29 si l’annprogramme
sinon si l’entier est égal à 2, le demande à l’utilisateur de saisir
© A
l’année et lui retourne ée est bissextile, 28 sinon (voir
[Link] )
66 / 104
Structures conditionnelles Expression ternaire
Java
67 / 104
Structures conditionnelles Expression ternaire
Java
67 / 104
Structures itératives while
Java
68 / 104
Structures itératives while
Java
Attention aux boucles infinies, vérifier que la condition d’arrêt sera bien
atteinte après un certain nombre d’itérations.
68 / 104
Structures itératives while
Java
Exemple
var i = 0;
while (i < 5) {
[Link](i);
i++;
}
69 / 104
Structures itératives while
Java
Exemple
var i = 0;
while (i < 5) {
[Link](i);
i++;
}
Le résultat est
0
1
2
3
4
69 / 104
Structures itératives while
Java
Exercice 1
70 / 104
Structures itératives while
Java
Exercice 2
71 / 104
Structures itératives while
Java
Exercice 3
72 / 104
Structures itératives do ... while
Java
73 / 104
Structures itératives do ... while
Java
Attention aux boucles infinies, vérifier que la condition d’arrêt sera bien
atteinte après un certain nombre d’itérations.
73 / 104
Structures itératives do ... while
Java
Exemple
var i = 0;
do {
[Link](i);
i++;
} while (i < 5);
74 / 104
Structures itératives do ... while
Java
Exemple
var i = 0;
do {
[Link](i);
i++;
} while (i < 5);
Le résultat est
0
1
2
3
4
74 / 104
Structures itératives do ... while
Java
Exercice
75 / 104
Structures itératives for
Java
Boucle for
for (initialisation; condition[s]; incrémentation) {
...
}
76 / 104
Structures itératives for
Java
Boucle for
for (initialisation; condition[s]; incrémentation) {
...
}
76 / 104
Structures itératives for
Java
Exemple
for (var i = 0; i < 5; i++) {
[Link](i);
}
77 / 104
Structures itératives for
Java
Exemple
for (var i = 0; i < 5; i++) {
[Link](i);
}
Le résultat est
0
1
2
3
4
77 / 104
Structures itératives for
Java
Exercice 1
78 / 104
Structures itératives for
Java
Première solution
for (var i = 0; i < 10; i++) {
if (i % 2 == 0) {
[Link](i);
}
}
79 / 104
Structures itératives for
Java
Première solution
for (var i = 0; i < 10; i++) {
if (i % 2 == 0) {
[Link](i);
}
}
Deuxième solution
for (var i = 0; i < 10; i += 2) {
[Link](i);
}
79 / 104
Structures itératives for
Java
80 / 104
Structures itératives for
Java
Exercice 2
80 / 104
Structures itératives for
Java
Exercice 3
81 / 104
Tableaux Tableaux à une dimension
Java
82 / 104
Tableaux Tableaux à une dimension
Java
82 / 104
Tableaux Tableaux à une dimension
Java
82 / 104
Tableaux Tableaux à une dimension
Java
83 / 104
Tableaux Tableaux à une dimension
Java
L’exception
Exception in thread "main" [Link]: 2
at [Link]([Link])
83 / 104
Tableaux Tableaux à une dimension
84 / 104
Tableaux Tableaux à une dimension
84 / 104
Tableaux Tableaux à une dimension
L’exception
Exception in thread "main" [Link]: 2
at [Link]([Link])
84 / 104
Tableaux Tableaux à une dimension
Java
85 / 104
Tableaux Tableaux à une dimension
Java
85 / 104
Tableaux Tableaux à une dimension
Java
86 / 104
Tableaux Tableaux à une dimension
Java
86 / 104
Tableaux Tableaux à une dimension
Java
87 / 104
Tableaux Tableaux à une dimension
Java
Exercice 1
Écrire un programme qui permet de calculer le nombre total de caractères de toutes les chaı̂nes
présentes dans le tableau voitures.
87 / 104
Tableaux Tableaux à une dimension
Java
88 / 104
Tableaux Tableaux à une dimension
Java
Exercice 2
88 / 104
Tableaux Tableaux à deux dimensions
Java
89 / 104
Tableaux Tableaux à deux dimensions
Java
Exemple
int[][] tab2dim = new int[2][2];
89 / 104
Tableaux Tableaux à deux dimensions
Java
Déclaration + initialisation
int[][] tab2dim = new int[][]
{
{1, 2},
{3, 4}
};
90 / 104
Tableaux Tableaux à deux dimensions
Java
Déclaration + initialisation
int[][] tab2dim = new int[][]
{
{1, 2},
{3, 4}
};
Ou
int[][] tab2dim =
{
{1, 2},
{3, 4}
};
90 / 104
Tableaux Tableaux à deux dimensions
Java
Parcourir un tableau à deux dimensions
for (int[] ligne : tab2dim) {
for (int elt : ligne) {
[Link](elt);
}
}
91 / 104
Tableaux Tableaux à deux dimensions
Java
Parcourir un tableau à deux dimensions
for (int[] ligne : tab2dim) {
for (int elt : ligne) {
[Link](elt);
}
}
Ou
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
[Link](tab2dim[i][j]);
}
}
91 / 104
Tableaux Tableaux à deux dimensions
int valeur = 5;
int[][] matrice =
{
{ 2, 3, 5, 7 },
{ 5, 1, 5, 5 },
{ 4, 2, 9, 5 },
{ 8, 5, 6, 5 }
};
92 / 104
Tableaux Tableaux à deux dimensions
int valeur = 5;
int[][] matrice =
{
{ 2, 3, 5, 7 },
{ 5, 1, 5, 5 },
{ 4, 2, 9, 5 },
{ 8, 5, 6, 5 }
};
Exercice
92 / 104
Tableaux Tableaux à deux dimensions
Java
Étant données les variables suivantes
int valeur = 5;
int[][] matrice =
{
{ 2, 3, 5, 7 },
{ 5, 1, 5, 5 },
{ 4, 2, 9, 5 },
{ 8, 5, 6, 5 }
};
93 / 104
Tableaux Tableaux à deux dimensions
Java
Étant données les variables suivantes
int valeur = 5;
int[][] matrice =
{
{ 2, 3, 5, 7 },
{ 5, 1, 5, 5 },
{ 4, 2, 9, 5 },
{ 8, 5, 6, 5 }
};
Exercice
Écrire un programme qui permet de déterminer si valeur est présente dans chaque
ligne de matrice.
93 / 104
Tableaux Tableaux à deux dimensions
Java
Exercice
94 / 104
Constantes
Java
Une constante
un élément qui ne peut changer de valeur
95 / 104
Constantes
Java
Une constante
un élément qui ne peut changer de valeur
95 / 104
Constantes
Java
96 / 104
Constantes
Java
96 / 104
Constantes
Java
96 / 104
Méthodes
Java
Une méthode
97 / 104
Méthodes
Java
Une méthode
97 / 104
Méthodes
Java
Une méthode
[Link](somme(2, 3));
// affiche 5
97 / 104
Méthodes
Java
Exercice
98 / 104
Méthodes
Java
Exercice
Exercice
98 / 104
Méthodes
Java
Exercice
99 / 104
Méthodes
Java
Déclaration de méthode avec un nombre indéterminé de paramètres (varargs)
public static int somme(int... tab) {
int res = 0;
for (int elt : tab)
res += elt;
return res;
}
100 / 104
Méthodes
Java
Déclaration de méthode avec un nombre indéterminé de paramètres (varargs)
public static int somme(int... tab) {
int res = 0;
for (int elt : tab)
res += elt;
return res;
}
Exemple d’appel
[Link](somme(2));
// affiche 2
[Link](somme(2, 3));
// affiche 5
[Link](somme(2, 3, 5));
// affiche 10
[Link](somme(2, 3, 5, 9));
// affiche 19
100 / 104
Méthodes
Java
Remarques
H I ©
varargs est disponible depuis Java 5
U EL
O
f E LM
On ne peut avoir qu’un seul varargs par méthode
r e
Le paramètre varargs doit être le dernier dans la liste de
ch
©A
paramètres d’une méthode
101 / 104
Méthodes
Java
Exercice 1
102 / 104
Méthodes
Java
Exercice 2
Exemple
estDivisiblePar(10, 2, 3, 5);
// false
estDivisiblePar(10, 2, 5);
// true
103 / 104
Méthodes
Java
Remarques
104 / 104