Java 2019
Java 2019
2
Où est-il utilisé?
3
Types d'applications Java:
Application Web:
Une application qui s'exécute sur le côté serveur et crée une page
dynamique, est appelée application Web. Actuellement, les
technologies servlet, jsp, struts, jsf etc. sont utilisées pour créer des
applications Web en Java.
4
Application d'entreprise:
Une application qui est distribuée dans la nature, comme les
applications bancaires, etc Il a l'avantage de la sécurité de haut niveau,
l'équilibrage de charge et de clustering. En java, EJB est utilisé pour
créer des applications d'entreprise.
Application mobile:
Une application créée pour les appareils mobiles. Actuellement,
Android et Java ME sont utilisés pour créer des applications mobiles.
5
Histoire de Java:
James Gosling 6
Actuellement, Java est utilisé dans la programmation Internet, les appareils
mobiles, les jeux, les solutions e-business, etc Il est donné les principaux points
qui décrivent l'histoire de java:
1) James Gosling, Mike Sheridan et Patrick Naughton ont initié le projet de
langage Java en juin 1991. La petite équipe d'ingénieurs Sun est appelé Green
Team.
2) Conçu à l'origine pour les petits systèmes intégrés dans les appareils
électroniques tels que les décodeurs.
3) Premièrement, il a été appelé "Greentalk" par James Gosling et l'extension
de fichier était .gt.
4) Après cela, il a été appelé Oak et a été développé comme une partie du
projet vert.
Pourquoi SUN a choisi le nom "OAK" ?
5) Pourquoi le chêne? Le chêne est un symbole de force et choisi comme arbre
national de nombreux pays comme les États-Unis, la France, l'Allemagne, la
Roumanie, etc.
6) En 1995, le OAK a été rebaptisé «Java» parce qu'il était déjà une marque de
7
commerce de Oak Technologies.
Pourquoi SUN a choisi le nom « JAVA" ?
7) Pourquoi ont-ils choisi le nom java pour le langage Java? L'équipe s'est réunie pour
choisir un nouveau nom. Les mots proposés étaient «dynamiques»,
«révolutionnaires», «soie», «secousse», «ADN», etc. Ils voulaient quelque chose qui
reflète l'essence de la technologie: révolutionnaire, dynamique, vivant, frais, unique
et facile à épeler Et amusant à dire.
Selon James Gosling "Java a été l'un des meilleurs choix avec Silk". Depuis java était si
unique, la plupart des membres de l'équipe préféré java.
8) Java est une île d'Indonésie où le premier café a été produit (appelé café java).
9) Notez que Java est juste un nom et non un acronyme.
10) Initialement développé par James Gosling chez Sun Microsystems (qui est
maintenant une filiale d'Oracle Corporation) et sorti en 1995.
11) En 1995, le magazine Time a appelé Java l'un des dix meilleurs produits de 1995.
12) JDK 1.0 est publié le (23 janvier 1996).
8
Historique des versions Java
Il existe de nombreuses versions java qui ont été publiées :
JDK Alpha et Beta (1995)
JDK 1.0 (23 janvier 1996)
JDK 1.1 (19 février 1997)
J2SE 1.2 (8 décembre 1998)
J2SE 1.3 (8 mai 2000)
J2SE 1.4 (6 février 2002)
J2SE 5.0 (30 septembre 2004)
Java SE 6 (11 déc., 2006)
Java SE 7 (28 juillet 2011)
Java SE 8 (18 mars, 2014)
Java SE 9 (Initialement prévu pour 2015 mais reportée en partie à cause du projet
Jigsaw, cette version est finalement sortie le 21 septembre 2017)
Java SE 10 (20 mars 2018)
Java SE 11 (25 septembre 2018)
Java SE 12 (Cette version est prévue pour le 19 mars 2019)
9
Caractéristiques de Java
Il est donné de nombreuses caractéristiques de java. Ils sont également
connus sous le nom de buzzwords java.
Les caractéristiques Java ci-dessous sont simples et faciles à comprendre.
o simple
o Orienté Objet
o Plateforme indépendante
o Sécurisé
o Robuste
o Architecture neutre
o Portable
o Dynamique
o interprété
o Haute performance
o Multithread
o Distribué
10
Simple
Selon Sun, le langage Java est simple parce que:
• La Syntaxe est basé sur C ++ (si plus facile pour les programmeurs de
l'apprendre après C + +).
• Suppression de nombreuses fonctionnalités confuses et / ou rarement utilisées,
par exemple pointeurs explicites, la surcharge de l'opérateur, etc…..
• Pas besoin de supprimer des objets non référencés car il ya le « Automatic
Garbage Collection » dans java.
Orienté objet
Objet-orienté signifie que nous organisons notre logiciel comme une combinaison
de différents types d'objets qui intègre les données et le comportement.
La programmation orientée objet (OOPs) est une méthodologie qui simplifie le
développement et la maintenance de logiciels en fournissant quelques règles.
Les concepts de base des POO sont les suivants:
Objet Polymorphisme
Classe Abstraction
Héritage Encapsulation 11
Plateforme indépendante
Une plate-forme est l'environnement matériel ou logiciel dans lequel un programme
s'exécute.
Il existe deux types de plates-formes basées sur le logiciel et le matériel. Java fournit
une plate-forme logicielle.
La plate-forme Java diffère de la plupart des autres plates-formes dans le sens où il
s'agit d'une plate-forme basée sur un logiciel qui fonctionne sur le dessus d'autres
plates-formes matérielles. Il comporte deux volets:
Environnement d'exécution (Runtime Environment)
API (Interface de programmation d'application)((Application Programming
Interface)
12
Le code Java peut être exécuté sur plusieurs
plates-formes, par ex. Windows, Linux, Sun
Solaris, Mac / OS, etc.
Le code Java est compilé par le compilateur et
converti en bytecode.
Ce bytecode est un code indépendant de la
plateforme car il peut être exécuté sur plusieurs
plates-formes, c'est-à-dire écrire une fois et
exécuter n'importe où (WORA).
(Write Once and Run Anywhere)
13
Sécurisé:
Java est sécurisé car:
• Pas de pointeur explicite
• Programmes Java exécutés à l'intérieur du bac à sable de la machine virtuelle
Ces sécurités sont fournies
par le langage java. Une
certaine sécurité peut
également être fournie par
le développeur
d'applications via SSL, JAAS,
Cryptographie, etc.
Classloader: ajoute la sécurité en séparant le paquet des classes du système de
fichiers local de ceux qui sont importés à partir des sources réseau.
Bytecode Verifier: contrôle les fragments de code pour le code illégal qui peut violer
le droit d'accès aux objets.
Security Manager: détermine les ressources auxquelles une classe peut accéder,
telles que la lecture et l'écriture sur le disque local. 14
Robuste
Robuste signifie simplement fort. Java utilise une gestion de mémoire forte. Il y ’a
un manque de pointeurs qui évite le problème de sécurité. Il ya collecte
automatique des miettes dans java. Il existe un mécanisme de gestion des
exceptions et de vérification de type dans java. Tous ces points rend java robuste.
Architecture neutre
Il n'existe pas d’implémentation dépendant des caractéristiques ou des
fonctionnalités, par ex. La taille des types primitifs est fixe.
En programmation C, le type de données int occupe 2 octets de mémoire pour
l'architecture 32 bits et 4 octets de mémoire pour l'architecture 64 bits. Mais en
java, il occupe 4 octets de mémoire pour les architectures 32 et 64 bits.
Portable
Nous pouvons créer des applications distribuées en Java. RMI et EJB sont utilisés pour
créer des applications distribuées. Nous pouvons accéder aux fichiers en appelant les
méthodes à partir de n'importe quelle machine sur Internet.
Multithread (Multitâches)
Un thread est comme un programme séparé, exécuté simultanément.
Nous pouvons écrire des programmes Java qui traitent de nombreuses tâches à la fois
en définissant plusieurs threads.
Le principal avantage du multi-threading est qu'il n'occupe pas de mémoire pour
chaque thread. Il partage une zone de mémoire commune. Les threads sont
importants pour les applications multimédias, Web etc.
16
Un Programme Simple de Java
Dans cette partie, nous allons apprendre à écrire un programme simple de java.
Nous pouvons écrire un simple programme « hello java » facilement après
l'installation du JDK.
Pour créer un programme java simple, vous devez créer une classe qui contient
la méthode principale. Comprenons d'abord l'exigence.
Exigence pour l'exemple Hello Java
Pour exécuter tout programme java, vous devez:
17
18
Comment définir le chemin d'accès dans Java
Le chemin d'accès doit être défini pour l'utilisation d'outils tels que javac, java, etc.
Si vous enregistrez le fichier source java dans le répertoire jdk / bin, il n'est pas
nécessaire de définir le chemin d'accès car tous les outils seront disponibles dans le
répertoire courant.
Mais si vous avez votre fichier java en dehors du dossier jdk / bin, il est nécessaire de
définir le chemin d'accès de JDK.
Il existe 2 façons de définir le chemin java:
❑ temporaire
❑ permanent
Comment configurer le chemin temporaire de JDK dans Windows:
Pour définir le chemin temporaire de JDK, vous devez suivre les étapes suivantes:
1. Ouvrir l'invite de commande
2. Copier le chemin d'accès du répertoire jdk / bin
3. Écriture dans l'invite de commande: set path = copied_path
Par exemple: set path=C:\Program Files\Java\jdk1.6.0_23\bin 19
20
Comment définir Permanent Path de JDK dans Windows
Pour définir le chemin permanent de JDK, vous devez suivre les étapes
suivantes:
Aller aux propriétés de MyComputer -> onglet avancé -> variables
d'environnement -> nouvel onglet de la variable utilisateur -> chemin
d'écriture dans le nom de la variable -> chemin d'écriture du dossier bin dans
la valeur de la variable -> ok -> ok -> ok
21
22
23
24
Définition du chemin Java dans le système d'exploitation Linux
Définir le chemin d'accès dans Linux OS est identique à définir le chemin dans le
système d'exploitation Windows. Mais ici nous utilisons l'outil d'exportation plutôt
que de définir. Voyons comment configurer le chemin dans le système d'exploitation
Linux:
export PATH=$PATH:/home/jdk1.6.01/bin/
Ici, nous avons installé le JDK dans le répertoire personnel sous Root (/
home).
25
Création d'un exemple hello java
26
27
Comme indiqué dans le diagramme ci-dessus, écrire le programme simple de java
dans le bloc-notes et enregistré comme Simple.java. Pour compiler et exécuter ce
programme, vous devez ouvrir l'invite de commande par le menu Démarrer -> Tous
les programmes -> Accessoires -> invite de commande.
28
Comprendre le premier programme java
Voyons ce que signifie la class, public, static, void, main, String [],
System.out.println ().
• Class est utilisé pour déclarer une classe dans java.
• Public est un modificateur d'accès qui représente la visibilité, cela signifie qu'il
est visible pour tous.
• Static est un mot-clé, si nous déclarons toute méthode comme statique, elle est
connue sous le nom de méthode statique. L'avantage principal de la méthode
statique est qu'il n'est pas nécessaire de créer un objet pour invoquer la méthode
statique. La méthode principale est exécutée par la JVM, donc elle n'a pas besoin
de créer un objet pour invoquer la méthode principale. Ainsi, il enregistre la
mémoire.
•
29
• Void est le type de retour de la méthode, cela signifie qu'il ne retourne
aucune valeur.
• Main représente le démarrage du programme.
• String [] args est utilisé pour l'argument de ligne de commande. Nous
l'apprendrons plus tard.
• System.out.println () est l'instruction d'impression utilisée.
30
Résolution d'une erreur "javac n'est pas reconnu comme une commande
interne ou externe"?
S'il se produit un problème comme indiqué dans la figure ci-dessous, vous devez
définir le chemin d'accès. Comme DOS ne connaît pas javac ou java, nous devons
définir le chemin. Le chemin n'est pas nécessaire dans ce cas si vous enregistrez votre
programme dans le dossier jdk / bin.
31
Détails internes du programme Hello Java
32
Que se passe-t-il à l'exécution?
33
JDK, JRE and JVM
JVM
JVM (Java Virtual Machine) est une machine abstraite. C'est une spécification qui
fournit un environnement d'exécution dans lequel Java bytecode peut être exécuté.
▪ Charge le code
▪ Vérifie le code
▪ Exécute le code
▪ Fournit un environnement d'exécution
34
JRE
JRE est un acronyme pour Java Runtime Environment. Il est utilisé pour fournir
runtime environment. Il est la mise en œuvre de JVM. Il existe physiquement. Il
contient un ensemble de bibliothèques + d'autres fichiers utilisés par JVM au
moment de l'exécution.
La mise en œuvre des JVM est également activement diffusée par d'autres
sociétés, outre Sun Micro Systems.
35
JDK
JDK est un acronyme pour Java Development Kit. Il existe physiquement. Il contient
des outils de développement + JRE .
36
Votre premier programme Java
37
public class HelloWorld {
ATTENTION :
D'un certain point de vue, Java est un langage relativement strict.
Une classe publique doit être placée dans un fichier du même nom (nous allons
revenir sur le concept de classe ultérieurement). Du coup, notre premier programme
doit obligatoirement être placé dans un fichier appelé HelloWorld.java.
De même, faites attention aux minuscules et aux majuscules : un simple écart sur un
caractère pourra produire une erreur.
Le langage Java est sensible à la casse (en anglais, case sensitive). Même sur les
noms de fichiers, le compilateur Java cherchera à garantir la bonne utilisation des
minuscules et des majuscules.
38
► L'élément principal de ce programme est la classe.
Une classe est un type de données
il s'agit en fait d'une simple fonction, mais comme elle est placée dans une
classe, on parle de méthode. Elle va constituer le point d'entrée de notre
programme (un peu à l'instar des langages C et C++).
Cette méthode ne contient qu'une ligne de code (ligne 04) qui permet de
retrouver l'objet de flux de sortie standard (il est par défaut redirigé vers la
console) à partir du système et de lui demander d'afficher le message
"HelloWorld". Comme ce message est une chaîne de caractères, on la
place entre double guillemets. 39
Conventions de codage:
Le langage Java impose (ou parfois conventionne) un certain nombre de choses
en terme de conventions de codage.
Voici une liste des principales conventions de codage utilisées en Java :
► Une classe publique doit être placée dans un fichier du même nom.
► Un nom de type (classe ou interface, nous y reviendrons) doit commencer par une
majuscule. Ex: HelloWorld.
► Une variable déclarée dans une classe (on parle d'attribut) doit commencer par
une minuscule. Ex: loopCounter.
► Une fonction dans une classe (on parle de méthode) doit aussi s'écrire de la même
manière
► Les constantes s'écrivent en majuscules. On sépare chaque mot par un caractère
_. Ex: PI ou MAX_PRIORITY.
40
Utilisation de commentaires
41
❑La première méthode (lignes 01 à 04) permet de placer un commentaire sur
plusieurs lignes. Il est donc nécessaire de placer un marqueur de début de
commentaire ainsi qu'un marqueur de fin. La syntaxe étant reprise sur le
langage C, on a donc, pour le marqueur de début, les deux caractères /* et
pour le marqueur de fin les caractères */.
43
❑ NetBeans : c'est l'atelier d'Oracle (initialement Sun Microsystems). Il est
gratuit, et vous pouvez le trouver à partir du site http://www.netbeans.org.
❑ IntelliJ IDEA : il est développé par la société JetBrains. Il peut être téléchargé à
l'adresse suivante : https://www.jetbrains.com/idea.
❑ Eclipse : projet open source, initialement mis en place par IBM. Cet outil est
gratuit. Actuellement, c'est un atelier qui séduit un très grand nombre de
développeurs Java. Nous utiliserons cet outil dans ce Cours Java.
44
Commencez par demander la création d'un nouveau projet Java, en cliquant
avec le bouton droit de la souris dans la vue Package Explorer (elle affiche le
contenu du workspace en cours - un workspace étant un regroupement de
projet).
45
Sélectionnez "Java Project" et cliquez sur le bouton "Next >".
46
Ensuite remplissez la boîte de dialogue qui vous est proposée ainsi (nom du projet
Laissez le reste en l'état. Cliquez sur "Finish".
47
Maintenant que le projet est créé, Renseigner la boîte de dialogue afficher en saisissant de
déroulez l'arborescence HelloWorld, nouveau "HelloWorld" pour le nom de la classe et en
et cliquez avec le bouton droit de la prenant soin de cocher la case "public static void main(
souris sur le nom du projet et String [] args)". Cette option vous évitera de taper la
demandez à y ajouter une nouvelle définition de la méthode statique main. Puis cliquez sur
classe. "Finish".
48
Petite astuce : si vous avez oublié de cocher la case pour la présence de la
méthode main, tapez ensuite le mot main dans le code, à l'endroit ou insérer la
méthode, puis tapez simultanément les touches CTRL et ESPACE. Cela vous
permettra de rectifier le tir. Sinon, vous pouvez aussi tout taper à la main.
Enfin, finalisez le code de la méthode main. Une possibilité rapide consiste à
utiliser un template Eclipse (un modèle de code que vous pouvez auto-générer.
Pour ce faire tapez le mot syso entre les accolades de la méthode main. Puis
appuyez de nouveau et simultanément sur les touches CTRL et ESPACE. Une
bonne partie du code sera générée.
49
Notez, comme le montre la capture d'écran ci-dessous, que vous avez pu saisir
des erreurs. Si tel est le cas, une erreur est signalée par des coches rouges
sur différents cotés. Dans l'exemple, un s en minuscule a été tapé en première
lettre du mot System.
Pour compiler un programme Java, il faut utiliser la commande javac (Java Compiler). Celle-ci peut être
invoquée sur un fichier ou bien sur un ensemble de fichiers Java
53
Pour lancer l'exécution de votre programme, Eclipse propose différentes
techniques (en fonction des habitudes de chacun) : en voici une. La première fois
que vous souhaitez démarrer votre programme sur une classe donnée, cliquez
avec le bouton droit de la souris sur cette dernière. Ensuite, sélectionnez "Run as"
puis "Java Application", comme le montre la capture d'écran ci-dessous.
54
Ensuite, l'atelier se souviendra de la dernière classe démarrée. Il suffira de cliquer
sur l'icône
Si tout ce passe bien, vous pourrez voir le résultat de votre programme dans la
console Eclipse, en bas de l'atelier, comme le montre la capture d'écran suivante.
55
Les types de données en Java
▪ Déclaration de variables
▪ Les types numériques
▪ Le type booléen
▪ Le type caractère
▪ Le type chaîne de caractères
▪ Les classes enveloppantes (Wrapped Classes)
▪ Les tableaux
▪ Les types énumérés
56
Déclaration de variables
Afin de facilement permettre la manipulation de données, les langages de
programmation tels que Java, proposent la notion de variable.
Une variable est un identifiant que vous mémoriserez plus facilement qu'une
adresse en mémoire (même si les deux concepts sont très proches).
Pour ce qui est de la syntaxe de la déclaration d'une variable, elle est relativement
simple
Une déclaration est constituée de deux ou trois parties : premièrement le nom du
type utilisé par la variable, ensuite le nom de la variable à proprement parlé et
enfin sa valeur initiale (cette dernière partie étant facultative).
Si la valeur initiale d'une variable n'est pas compatible avec le type de données
associé à la variable, une erreur de compilation sera produite.
float double
Size (bits) 32 64
Exemple de valeurs 3.25f 3.25
Tout comme pour les types entiers, certaines syntaxes vous sont permises pour spécifier
vos valeurs : notation exponentielle, spécification d'une valeur de type float,
...ATTENTION : par défaut, une valeur flottante est considérée comme étant de
type double. Il ne faudra donc pas oublier d'utiliser le caractère f en fin de valeur si vous
désirez la typée en float. Voici encore une fois un petit exemple.
60
Voici un petit exemple.
61
Le type booléen
On introduit une variable de ce type par le mot clé boolean. Ce type accepte seulement deux
états : l'un est nommé true et symbolise un état d'acceptation, l'autre, nommé false, symbolise
un état de refus.
Contrairement aux types précédents, qui sont ce que l'on appelle des types primitifs, une
chaîne de caractère est représenté par le type String, qui, en vérité, est ce que l'on appelle
une classe (nous reviendrons ultérieurement sur ce concept). Pour l'heure, notez
simplement qu'en conséquence, le type String commence par une majuscule
(contrairement aux autres types vus jusqu'à présent). Remarque pour ceux qui connaisse
déjà le concept de classe : la classe String est placée dans le package java.lang.
Une chaîne de caractères utilise bien entendu le standard UNICODE, à l'instar des
caractères. Notez aussi qu'une chaîne de caractères se définie en plaçant son contenu entre
deux doubles quottes. L'utilisation des séquences \u0041 (par exemple), \n, \t, ... est bien
entendu supportée.
Comme le type String est une classe, tout objet (toute chaîne de caractères) de ce type
exposera un ensemble de méthodes (de fonctions) : encore une fois, nous allons revenir
ultérieurement sur ce concept. Néanmoins, l'exemple de code suivant vous montre comment
tirer profit de certaines de ces méthodes.
64
65
Les classes enveloppantes (Wrapped Classes)
Bien entendu, Java permet lui aussi d'utiliser les tableaux. Un tableau est
un ensemble d'éléments d'un même type : par exemple, un tableau
d'entiers, un tableau de chaînes de caractères, ... En fait, depuis notre
premier exemple de code Java, nous avions introduit le concept de tableau.
Effectivement, tout programme Java peut être lancé à partir de la ligne de
commande et peut donc accepter un certain nombre d'arguments. La
méthode statique main prend en paramètre en tableau de chaînes de
caractères appelé args : il correspond à l'ensemble des arguments fournis
sur la ligne de commande.
Pour introduire une variable de type tableau il vous faut utiliser la syntaxe [].
Néanmoins les crochets peuvent être placés à différents endroits.
70
71
Les types énumérés
En premier lieu, il faut savoir une chose importante : les types énumérés en Java n'existent
pas depuis les premières versions du langage : ils sont arrivés avec la version Java SE
5.0.
Un type énuméré ressemble, d'un certain point de vue, au type booléen de par le fait qu'il
accepte un nombre d'état restreint. Néanmoins, avec un type énuméré, c'est vous qui
choisissez les états acceptés par le type. Voici un petit exemple d'utilisation d'un type
énuméré.
72
Les opérateurs Java
73
Vos programmes Java vont, logiquement, calculer un certain nombre d'expressions.
Une expression est constituée d'opérateurs et d'opérandes. Ainsi l'expression 3 + 4 est
basée sur l'opérateur + et mais en jeux les opérandes 3 et 4. Le résultat de cette
expression (très simple) valant bien entendu 7.
Comme nous allons le voir, le langage Java propose un très grand nombre d'opérateurs :
ils sont, en très grosse partie, récupérés du langage de programmation C. Nous allons
tout au long de ce chapitre présenter l'utilisation des principaux opérateurs de langage à
grand renfort d'exemples de code Java.
75
Les opérateurs arithmétiques
Les opérateurs arithmétiques permettent, bien entendu, de constituer des
expressions arithmétiques. Ces opérateurs sont quasiment utilisant sur tous les
types numériques (byte, short, int, long, float et double).
Ces opérateurs sont au nombre de cinq :
+(pour l'addition),
- (pour la soustraction),
*(pour la multiplication),
/ (pour la division) et
% (pour le reste de la division entière).
L'exemple qui suit vous montre quelques exemples d'utilisations des opérateurs
arithmétiques.
76
77
Méfiez-vous néanmoins des opérateurs / et % : leur comportement dépend que l'on travaille sur
des types entiers ou des types flottants. Effectivement, une source d'erreur classique est la suivante
: l'opérateur /, s'il est invoqué avec deux entiers renverra, obligatoirement, une valeur entière.
L'exemple ci-dessous vous mets face à la problématique.
78
Si vous mixez deux types distincts lors de l'utilisation d'un opérateur arithmétique, c'est toujours
le type le plus large qui l'emporte : 3 + 3.6 calcule une valeur de type double et non entière.
79
Les opérateurs logiques
80
Les opérateurs de comparaisons
81
82
Les opérateurs d'affectations
Voici les opérateurs d'affectation pris en charge par le langage Java -
Deux opérateurs déjà présentés dans ce document peuvent aussi être utilisé avec
des chaînes de caractères ; il s'agit des opérateurs + et +=. Dans ce cas ils
n'effectueront pas d'additions, mais bien des concaténations de chaînes de
caractères.
86
Les autres opérateurs Java
ptr = "toto";
System.out.println( ptr instanceof String );
}
}
88
La table de précédence des opérateurs Java
Comme vous l'avez certainement déjà remarqué, il est possible de se servir de parenthèses pour
fixer l'ordre d'évaluation des sous-expressions formant une expression Java. Ainsi, les expressions
3*2+4 et 3*(2+4) n'auront pas les mêmes valeurs (10 et 18). Mais attention tout de même :
l'utilisation abusive des parenthèses rend très rapidement un code illisible. Dans le but de ne pas
arriver dans de telles situations, sachez que des règles de priorités ont étaient définies sur les
opérateurs. Le tableau suivant fixe cet ordre : du plus prioritaire au moins prioritaire.
[].
! ++ --
*/%
+-
<< >>
== != < <= > >=
&
^
|
&&
||
?:
89
= += -= *= /= %= <<= >>= &= ^= |=
Les Structures conditionnelles
90
Les instructions du langage Java
Dans le chapitre précédent, nous avons vu ce qu'étaient les expressions : celles-ci
permettent de calculer des valeurs. Parallèlement, nous avons les instructions
(statements en anglais) qui permettent de lancer des actions. En composant les
instructions on défini ainsi le comportement que le programme devra adopter.
Pour mieux comprendre les choses, nous allons, tout au long de ce chapitre,
étudier une à une toutes les instructions utilisables en Java.
Premier point de syntaxe : toute instruction se termine par un point-virgule.
Attention, il ne s'agit pas d'un séparateur, mais bien d'un terminateur d'instruction
: même la dernière instruction d'un bloc doit être terminée par ce caractère.
{
System.out.print( "Veuillez renseigner votre nom : " );
String nom = System.console().readline();
System.out.println( "Votre nom est : " + nom );
}
92
L'instruction IF
93
// Un exemple sans partie else
System.out.print( "Veuillez saisir une valeur : ");
int a = Integer.parseInt( System.console().readLine() );
if ( a < 0 ) {
System.out.println( "La valeur est négative" );
}
94
Notez un point de syntaxe, que nous ne recommandons néanmoins pas !
Mais il est possible, et ce pour les deux blocs d'instructions portés par le
if et le else, de ne pas utiliser les caractères { et } dès lors qu'il y a qu'une
unique instruction par bloc. Ainsi, le code proposé ci-dessus pourrait
aussi s'écrire :
System.out.print( "Veuillez saisir une valeur : ");
int a = Integer.parseInt( System.console().readLine() );
if ( a < 0 )
System.out.println( "La valeur est négative" );
else
System.out.println( "La valeur est positive" );
96
L'utilisation de l'instruction switch est souvent couplée à l'instruction break.
Effectivement, si un bloc d'instructions est exécuté et si celui-ci ne se termine pas
par l'instruction break, alors l'exécution du bloc suivant (dans l'ordre de
déclaration) sera lancé et ainsi de suite. Cela est pratique pour définir un même
traitement pour plusieurs cas. Voici un petit exemple d'utilisation d'un switch.
97
public class TestStatements {
La boucle for
L'instruction for permet d'exécuter plusieurs fois la même série d'instructions: c'est une boucle !
Dans sa syntaxe, il suffit de préciser le nom de la variable qui sert de compteur (et
éventuellement sa valeur de départ, la condition sur la variable pour laquelle la boucle s'arrête
(basiquement une condition qui teste si la valeur du compteur dépasse une limite) et enfin une
instruction qui incrémente (ou décrémente) le compteur.
La syntaxe de cette expression est la suivante :
Remarque : Java autorise la déclaration de la variable de boucle dans l'instruction for elle-
même. On peut même déclarer d'autres variables en même temps, par exemple pour définir
la condition d'arrêt :
100
Remarques :
101
La boucle while
La boucle while représente un autre moyen d'exécuter plusieurs fois la même série
d'instructions.
Cette instruction exécute la liste d'instructions tant que (while est un mot anglais qui
signifie tant que) la condition est réalisée.
La condition de sortie pouvant être n'importe quelle condition, il est souvent moins aisé
de savoir si la boucle s'arrête, mais il est important de toujours s'en assurer.
102
Exemple : somme des dix premiers entiers positifs
Fichier "TenCounter.java"
String str = "La somme des dix premiers entiers positifs est : ";
System.out.println(str + somme);
}
}
103
La boucle do while
La boucle do while est une variante de la boucle while, où la condition d'arrêt est testée
après que les instructions aient été exécutées.
do {
liste d'instructions
} while (condition réalisée);
104
Exemple : un programme calculant la somme des dix premiers entiers positifs.
Fichier "TenCounter.java"
do
somme+=indice++;
while(indice<=10);
String str = "La somme des dix premiers entiers positifs est : ";
System.out.println(str + somme);
}
}
▪ Dans la majorité des cas où elle peut s'utiliser, la boucle for each est plus
rapide qu'une boucle for.
▪ On a ici un contrôle moindre sur l'ordre des éléments, mais Java assure que tous
les éléments seront utilisés (on a pas à compter soi même le nombre
d'éléments) et qu'ils seront pris "dans l'ordre" (lorsque cet ordre existe).
107
Saut inconditionnel
Il peut être nécessaire de faire sauter une ou plusieurs valeurs à la boucle sans pour
autant mettre fin à celle-ci.
La syntaxe de cette expression est "continue;" (cette instruction se place dans la boucle),
on l'associe généralement à une structure conditionnelle, sinon les lignes situées entre
cette instruction et la fin de la boucle seraient obsolètes.
Exemple :
Imaginons que l'on veuille imprimer pour x allant de 1 à 10 la valeur de 1/(x-7) ... il est
évident que pour x=7 il y aura une erreur. Heureusement, grâce à l'instruction continue
il est possible de traiter cette valeur à part puis de continuer la boucle !
108
x=1;
double a = 1.0/(x-7);
System.out.println(a);
}
109
Arrêt inconditionnel
A l'inverse, il peut être voulu d'arrêter prématurément la boucle, pour une autre conditon
que celle précisée dans l'en-tête de la boucle. L'instruction break permet d'arrêter une
boucle (for ou bien while). Il s'agit, tout comme continue, de l'associer à une structure
conditionnelle, sans laquelle la boucle ne ferait jamais plus d'un tour !
Dans l'exemple de tout à l'heure, par exemple si l'on ne savait pas à quel moment le
dénominateur (x-7) s'annule (bon...OK...pour des équations plus compliquées par exemple)
il serait possible de faire arrêter la boucle en cas d'annulation du dénominateur, pour éviter
une division par zéro!
for (int x=1; x<=10; x++) {
a = x-7;
if (a == 0) {
System.out.println("division par 0");
break;
}
System.out.println(1.0/a);
}
110