Vous êtes sur la page 1sur 25

Programmation orientée objet Mme Eya cheikh

Chapitre 2 : Introduction au langage JAVA

1
Programmation orientée objet Mme Eya cheikh

I. Historique du langage Java


Le langage Java (café en anglais parlé) a été créé dans les années 90, par la firme Sun
Microsystems, par l’équipe de James Gasling qui souhaitait créer un environnement
indépendant des architectures matérielles et des systèmes d’exploitation. Au début ce
langage était connu sous le nom d’OAK.
En 1993, avec l’intérêt grandissant d ’Internet, ce langage, de par sa portabilité, se
métamorphose en langage dédié à Internet. En effet, en mars le NCSA( National Center for
Supercomputing Applications c’est un centre qui est notamment connu dans le monde de
l'Internet ) lance MOSAIC, le premier navigateur internet (protocole http, langage html) En
1994, nouveau départ pour JAVA, Sun diffuse le premier navigateur supportant les applets
(HotJAVA) qui permet d’exécuter des applets java, (les applets ce sont des programmes Java
encapsulés dans des pages Web pour ajouter un élément exécutable et interactif à une page
html)
En 1995, Apparition de la version, Alpha de Java et son interface de développement d’API
En 1996, L’attrait des applets Java, conduit Netscape et Microsoft à inclure dans leurs
propres navigateurs les composants permettant d’exécuter les applets
En 1997, apparition de la version 1.1 du JDK (JDK1.1) et en 1998 il y a eu l’apparition de
la version 1.2 du JDK (JDK1.2).
On peut dire que depuis sa version 1.2, Java a été renommé Java 2. Les numéros
de version 1.2 et 2 désignent donc la même version.
Les années qui suivent il y a eu l’apparition de nouvelles versions de JDK, en effet en 2004
c’est le JDK 1.5 ( Java 5) puis en 2006 c’est le JDK 1.6( Java 6).
En 2010 c’est l’achat de Sun Microsystems Par Oracle et en 2011apparition de java7 et du
JDK7.
On notera que, au fil des différentes versions, les aspects fondamentaux du langage ont peu
changé (ils ont quand même été complétés de façon substantielle par Java 5, notamment par
l’introduction de la programmation générique et du remaniement des "collections"). En
revanche, les bibliothèques standards (API) ont beaucoup évolué, à la fois par des
modifications et par des ajouts.

2
Programmation orientée objet Mme Eya cheikh

II. Les différentes éditions et versions de java


Sun définit trois plateformes d'exécution (ou éditions) pour Java pour des cibles
distinctes selon les besoins des applications à développer :
 Java Standard Edition (JSE / Java SE) : environnement d'exécution et ensemble
complet d'API pour des applications de type poste de travail. Cette plate-forme sert
de base en tout ou partie aux autres plateformes.

 Java Enterprise Edition (JEE / Java EE) : environnement d'exécution reposant


intégralement sur Java SE pour le développement d'applications d'entreprises et ceci
afin de faciliter la création d’applications réparties.

 Java Micro Edition (JME / Java ME) : environnement d'exécution et API pour le
développement d'applications sur appareils mobiles et embarqués dont les capacités
ne permettent pas la mise en œuvre de Java SE
La séparation en trois plateformes permet au développeur de mieux cibler l'environnement
d'exécution et de faire évoluer les plateformes de façon plus indépendante.

III. Architecture du langage JAVA


Les concepteurs du langage ont réalisé trois outils qui constituent la base de
fonctionnement des programmes java :
- Machine virtuelle Java (JVM)
- Java Runtime Environment (JRE)
- Java Development Kit (JDK)

3
Programmation orientée objet Mme Eya cheikh

3.1 La JVM
3.1.1 Définition
C’est une couche logicielle intermédiaire entre les systèmes d’exploitation et les
programmes écrits en java. Elle isole les programmes java des contraintes de
l’environnement local, assurant ainsi leur portabilité.
Dans cette optique, un programme écrit sur PC, par exemple, doit pouvoir s’exécuter
sur un PC (de type IBM), un Macintosh (Apple) ou une station Unix (de type Sun), et
ce sans réécriture ni compilation du code source.
Or, le code binaire est spécifique pour chaque machine. Il est impossible de faire
tourner un même programme source d’une machine à une autre sans le compiler à
nouveau. En effet, lors de la nouvelle compilation, des erreurs apparaissent, dues aux
différences de matériel informatique.

Pour corriger cet inconvénient majeur, l’idée de J.Gosling a été de créer un code
intermédiaire entre le code source et le code binaire. Ce code intermédiaire est
appelé pseudo-code, ou encore byte code.
En effet, en créant un pseudo-code, identique pour tous les ordinateurs, il est possible
d’exécuter ce code sur différentes machines, sans avoir à le recompiler.
Ce code sera interprété par une machine virtuelle java, ou JVM (Java Virtual Machine).
C'est à dire que chaque instruction du bytecode sera lue et décodée puis traduite en
langage machine local.
Pour qu’un système puisse faire tourner des programmes java, il faut donc que la JVM
soit portée sur le système en question.

3.1.2. Les différentes JVM


Il existe autant de types d’ordinateurs (plates-formes) que de JVM.
 HotSpot: la plus utilisée (Sun)
 Microsoft JVM

4
Programmation orientée objet Mme Eya cheikh

 JRockit JVM (Oracle)


 Jikes RVM (Open source),……

L’avantage d’un tel système est que le développeur d’applications est certain de créer des
programmes totalement compatibles avec les différents ordinateurs du marché sans avoir
à réécrire une partie du code.
3.1.3. Les principaux modules d’une JVM
 Le chargeur de classes (class loader)
 L’interprèteur de bytecode, JITcompiler
 Le garbage collector (ramasse miette)
 Et aussi :
 les E/S ,
 le graphique,la sécurité, …

3.2 Le JRE (Java Runtime Environement)


C’est le conteneur de l’environnement d’exécution du Java sur toutes les plateformes (cad
contient tous les éléments nécessaires pour faire fonctionner une application java). Le
JRE doit être installé sur toutes les machines susceptibles de lancer des applications de
type Java.
Appelé aussi « Runtime », Il inclut:

5
Programmation orientée objet Mme Eya cheikh

 L'implémentation d'une machine virtuelle Java


 Java : C’est l’interpréteur Java, permettant l'exécution des fichiers (.class)
 Javaw : pour l’exécution des programmes contenant des interfaces graphiques
 La librairie de classes Java

3.3 Le JDK (Java Development Kit)


Il contient le JRE. C’est l’environnement indispensable au développement et à la
création de programmes Java. Il inclut un compilateur, un interpréteur, ainsi qu’un
environnement de développement comprenant des outils et des utilitaires favorisant
la programmation.
Le JDK contient un grand nombre d'outils tels que :
 JRE
 Javac : Java Compiler, le compilateur Java ; il compile un fichier source
(.java) en un fichier (.class) contenant du byte-code
 Javadoc: C'est un utilitaire très puissant qui permet de construire la
documentation de développement, à partir des commentaires insérés dans
des sources Java, des fichiers HTML à propos des classes, méthodes…
 AppletViewer : Pour exécuter les applets
 Jar : Permet la création et la gestion des fichiers JAR (Java Archive)
 D’autres utilitaires

6
Programmation orientée objet Mme Eya cheikh

IV. Caractéristiques du langage java


Le langage java permet de développer des logiciels pour l’électronique grand
public, tels que décodeurs (set-top box), PDA, CD-ROM,.... Ses caractéristiques
devaient donc être la robustesse, la compatibilité, la facilite de programmation et la
petite taille du runtime ou des codes générés.

 Simple
La facilite d’accès à Java commence par le fait que la syntaxe est héritée de C++ et
donc qu’un développer C ou C++ pourra facilement maîtriser ce nouveau langage.
Les développeurs de Java ont décidé de simplifier considérablement C++
: certaines fonctionnalités, telles que l’héritage multiple ou la surcharge
d’opérateurs, ou les types inutiles n’ont pas été retenus par l’équipe qui a conçu
Java.
Certaines autres fonctionnalités ont été ajoutées comme le «ramasse-
miettes»(garbage collector).Pour faciliter la programmation, Java intègre également
une importante librairie de classes prédéfinies.

7
Programmation orientée objet Mme Eya cheikh

 Portable
Ce langage a été créé pour être fonctionnel au sein d’une architecture réseau de
machines et de systèmes d’exploitation hétérogènes, car son implémentation se base
sur le déploiement d’une machine virtuelle.

 Orienté objet
En java, il n’y a pas ni de constantes ni de variables ou de fonctions autonomes
puisque l’accès se fait toujours par des classes et des objets.
On peut dire donc que le niveau le plus externe de la structure des données est
l’objet d’où Java est un pur langage orienté objets.

 Compilé et interprété
Un programme Java est compilé dans un langage de la JVM qui est le byte-code
(Ce code constitue les instructions pour la JVM), ce dernier devra ensuite être
interprété par la JVM.

 Dynamique
Java a été conçu pour s’adapter à un environnement qui évolue, et pousse le concept
orienté objet à son optimum en permettant l’édition des liens entre modules objets
dynamiquement au moment de l’exécution, en particulier dans le cas ou une
application s’appuie sur une librairie de classes (une librairie de composants
logiciels). Même si cette librairie de classes évolue, il n’est pas nécessaire de
modifier ou de recompiler l’application qui y fait appel. Ces nouvelles versions de
modules seront prises en compte sans problèmes dès le moment ou elles auront été
utilisées.

 Multithreadé
L’utilisation du multithreading permet à un seul programme d’effectuer plusieurs
activités simultanément. En effet, Java permet aux programmeurs la gestion de
multiples threads. Ce qui représente un outil puissant pour améliorer l'exécution
interactive des applications.

8
Programmation orientée objet Mme Eya cheikh

Java offre une classe Thread qui renferme une collection riche de méthodes pour
tout type d’action (commencer, exécuter, arrêter et vérifier l’état d’un thread).

 Sécurisé
Java étant prévu pour être utilisé en réseau, la sécurité a été prise en compte dès le
début de la définition de ce langage : La technique d’authentification s’appuie sur
des mécanismes de chiffrement à clé publique. C’est grâce aux restrictions
apportées au langage qui interdisent à des applications d’accéder et de modifier les
structures de données en mémoire, que Java permet le développement de systèmes
totalement résistant aux virus.

V. La Syntaxe du langage Java


5.1 Les identificateurs
5.1.1 Définition
Les identificateurs permettent de nommer les différents éléments (variables,
constantes, classe, méthodes, packages,…) des programmes Java.
Un identificateur commence par une lettre, un trait de soulignement (_) ou un
signe dollar($), les caractères suivants peuvent également comporter des chiffres.
Les identificateurs opèrent une distinction majuscules/minuscules et n’ont pas de
longueur maximale, ne peuvent pas contenir d’espace vide et ne doivent pas être
des mots clés de Java.
5.1.2 Les mots clés java
abstract boolean break byte byvalue* case
cast* catch char class const* continue
default do double else extends false
final Finally Float For Future* Generic*
goto* if implements import inner* instanceof
int interface long native new null

9
Programmation orientée objet Mme Eya cheikh

operator* outer* package private protected public


rest* return short static super switch
synchronized this throw throws transient true
var* void volatile while

* Réservé mais non utilisé


5.1.3 Conventions de codage
Les identificateurs sont composés d’un ou de plusieurs mots. Pour faciliter la
lisibilité, la première lettre de chacun des mots est conventionnellement en
Majuscule, sauf pour le premier mot qui est fonction de la nature de l’identificateur.
 Classes ou Interfaces : la première lettre de l’identificateur d’une classe doit
Conventionnellement être en majuscule.
 Méthodes ou Variables : la convention de nommage indique que la première
lettre du mot doit être en minuscule.
 Constantes : la convention de nommage indique que leur nom doit être en
majuscule.
 Autres conventions : Pour les Structures de contrôle on utilise des {} autour
des instructions, même s’il s’agit d’une seule, lorsqu’elles font partie d’une
structure de contrôle, telle que if-else ou for.
Remarque : Si possible, des noms pour les classes et des verbes pour les méthodes

VI. Les types de données


Java est un langage fortement typé : chaque variable et chaque expression possède
un type bien défini. Les types de données de Java sont divisés en deux grands
groupes :
 Les types primitifs: boolean, int, short, byte, float, long, double, char.
 Le type référence: chaîne de caractères (String), tableau ou classe.

10
Programmation orientée objet Mme Eya cheikh

6.1 Les types primitifs


 boolean
- Type défini sur 1 bit
- Valeurs possibles :{false, true}
- Valeur par défaut : false

 char
- Type défini sur 16 bits.
- Valeurs possibles :{' \u0000' , …, ' \uFFFF' }
- Valeur par défaut : ' \u0000'
a. Les types entiers
 byte
- Type défini sur 8 bits.
- Valeurs possibles -128 à 127
- Valeur par défaut: 0

 short
- Type défini sur 16 bits.
- Valeurs possibles -215 à 215 -1 (-32768 à 32767)
 Valeur par défaut: 0

 int
- Type défini sur 32 bits.
- Valeurs possibles -231 à 231-1
- Valeur par défaut: 0
 long
- Type défini sur 64 bits.
- Valeurs possibles -263 à 263-1
- Valeur par défaut: 0

11
Programmation orientée objet Mme Eya cheikh

b. Les types Réels


 float
- Type défini sur 32 bits.
- Valeur par défaut: 0.0F

 double
- Type défini sur 64 bits.
- Valeur par défaut: 0.0D

Java dispose également de classes permettant d’envelopper les primitives


Classe Primitive
Character char
Byte byte
Short short
Integer int
Long long
Float float
Double double
Boolean boolean
BigInteger -
BigDecimal -

6.2 Opération de Transtypage (cast)


Syntaxe : (typeCast) expression
Cette opération permet de convertir le type de l’expression en typeCast.
Exemple : (int)x =2 ; // Convertit x en entier
Le downcasting diminue la généralité du type avec un risque de perte
d’informations. Le upcasting augmente la généralité du type (sans aucun risque).

12
Programmation orientée objet Mme Eya cheikh

Pour les types primitifs on a du moins général au plus général on a :


byte -> short -> int -> long -> float -> double
Exemple1
double x = 15; /*15 est transformée automatiquement en (double)
15.0 avant d’être affectée à la variable x */
Lors de cette affectation, une opération de upcasting implicite peut avoir lieu
(lorsque la partie droite de l’affectation est d’un type moins général).

Exemple2
int x=3, y=2;
double z = x/y; // affecte la valeur 1.0 à z
double z = (double) x/y; // la valeur 1.5 est affectée à z

VII. Les Constantes ou les littéraux


Java ne comporte pas de constantes à proprement parler. Il est cependant possible
de simuler l'utilisation de constantes à l'aide du mot clé final. Une variable déclarée
final ne peut plus être modifiée une fois qu'elle a été initialisée.
Il faut noter que par défaut, un littéral réel est de type double donc un suffixe F
permet d'identifier un littéral float et un suffixe D permet d'identifier un littéral
double.
Exemple: final float PI=3.141592F;

VIII. Les instructions


8.1 Définition
Les instructions représentent des commandes uniques, elles sont séparées par des
points virgule et peuvent être écrites sur plusieurs lignes.

13
Programmation orientée objet Mme Eya cheikh

Exemple
x = (y + z) / q; //instruction 1
x=
(y + z
) / q; // instruction 2

8.2 Les blocs de code


Un bloc de code est un groupe d’instructions qui se comportent comme une
Unité. Java délimite les blocs de code par des accolades ({ et }).

Exemple
int i=0;
while (i<5)
{ Bloc While
System.out.println(i);
i=i+1 ;
}

8.3 Les commentaires


Trois notions sont admises pour l’insertion de commentaires:
// Commentaire sur une seule ligne
/* commentaire sur une ou plusieurs lignes */
/** commentaire d’explication */
Les commentaires d’explication sont des commentaires qui permettent de générer
automatiquement une documentation avec l’utilitaire javadoc (générateur
automatique de document).

14
Programmation orientée objet Mme Eya cheikh

8.4 Les expressions


Une expression est une combinaison significative d’identificateurs, de mots clés,
de symboles et d’opérateurs et qui a une valeur.
 Les opérateurs arithmétiques
Opérateur Description Exemple
++/-- Incrémentation/Décrémentation int i=5 ;
automatique i++ ;
--i ;
++i ;
+/- Addition/soustraction 5+9
* Multiplication 5*3
/ Division 10/2
% Modulo 9%3
Exemple
public class Test {
public static void main(String[] args) {
int x=5, y=5;
// 5 is displayed then, x is increased to 6.
System.out.println(x++);
// Initially, x = 6. It is increased to 7 then, it is displayed.
System.out.println(++y);
int t=5;
int z=t++;
System.out.println(z); //5
z=++t;
System.out.println(z);//7
}

15
Programmation orientée objet Mme Eya cheikh

 Les opérateurs d’affectation


Opérateur Description Exemple
= Affectation int i=5 ;
+= Addition et affectation i+=10 ;//(i a la valeur 15)
-= Soustraction et affectation i-=3 ; //(i a la valeur 12)
*= Multiplication et affectation i*=2 ; //(i a la valeur 24)
/= Addition et affectation i/=3 ; //(i a la valeur 8)
%= Addition et affectation i%=3 ; //(i a la valeur 2)

 Les opérateurs de comparaison


Java propose des opérateurs pour toutes les comparaisons :
Opérateur Description Exemple
< Strictement inférieur à boolean b=5<5 ;//(b a la valeur false)
> Strictement supérieur à b=5>4 ; //(b a la valeur true)

16
Programmation orientée objet Mme Eya cheikh

<= Inférieur ou égal à b=12<=13;//(b a la valeur true)


>= Supérieur ou égal à b=12>=13;//(b a la valeur false)
== Egal à b=15==15;//(b a la valeur true)
!= Différent de B=7 !=7;//(b a la valeur false)

 Les opérateurs logiques


Opérateur Description Exemple
! Non logique(NOT) boolean t=true ;//( t a la valeur true)
boolean f=( !t) ;//( f a la valeur false)
&& Et logique(AND) boolean b=(a &&b) ;//( b a la valeur
false)
|| Ou logique(OR) b=(a| |b) ;//( b a la valeur true)

 Un opérateur spécial : l’opérateur ?:


C’est un opérateur ternaire, Voici la syntaxe :
expression1? expression2: expression3;

L’expression1 est évaluée en premier. Si sa valeur est true, l’expression2 est


calculée, sinon l’expression3 est calculée.
Exemple
int x = 3, y = 4, max;
max = (x > y)? x: y;
//ceci revient à dire max=y;
 La priorité des opérateurs
Java définit les priorités dans les opérateurs comme suit (du plus prioritaire
au moins prioritaire).
Les parenthèses ayant une forte priorité, l'ordre d'interprétation des
opérateurs peut être modifié par des parenthèses.

17
Programmation orientée objet Mme Eya cheikh

8.5 Les instructions de contrôle


 Les instructions conditionnelles
L'instruction ''if....else''
if (condition1) {//blocCode 1
} else if (condition2) {
//blocCode 2
} else {
//blocCode 3
}
Il faut noter que le mot else et l’instruction qu’il introduit sont facultatifs et
que les conditions sont des expressions booléennes quelconques (entourées de
parenthèses).
On note aussi qu’une instruction if peut contenir d’autres instructions if et que le
else se rapporte toujours au dernier if rencontré auquel un else n’a pas encore été
attribué. On termine par dire que les accolades permettent d'attribuer explicitement
un else à un if.

18
Programmation orientée objet Mme Eya cheikh

Exemple
if (a>b)
{if (a>c)
max=a ;
else if (c>a)
max=c ;
}else if (b>c)
max=b ;
else
max=c ;

L'instruction ''switch case''


switch (expression){
case valeur1: blocCode1;
break;
case valeur2: blocCode2;
break;
default : blocCode3;
}
La valeur de l’expression doit être de type nombre entier (ou d’un type qui peut
être transtypé en int sans risque, comme char).
Les valeurs case doivent être des expressions constantes du même type que
l’expression.
La clause default est optionnelle. Elle permet de spécifier un traitement pour les cas
non présents dans les clauses case.
L'instruction break fait sortir de la structure switch. Si elle est absente à la fin du bloc
d'instructions de la valeur vi, l'exécution se poursuit alors avec les instructions de la
valeur vi+1.
 Les instructions répétitives

19
Programmation orientée objet Mme Eya cheikh

l’instruction for
for (instr_init; condition_arret; inst_iteration) {
//blocCode
}
Exemple
for (int i=0;i<10;i++){
if(i<5)
System.out.println("c’est inf à 5");
else
System.out.println("iteration "+i);}

L'instruction for each


L'instruction for each permet de parcourir automatiquement un ensemble
d'éléments. On boucle jusqu'à ce que tous les éléments de l'ensemble soient
parcourus.
for ( type variable_de_parcours : ensemble_d'élément){
instructions ; }
Exemple
int[] tableau={1,2,3,4,5} ;//crée un tableau de 5 entiers
for (int i : tableau)//parcours automatique du tableau
{System.out.println(i+" :");
}

L'instruction while
while (condition) {
//blocCode
}
On boucle tant que la condition est vérifiée. La boucle peut ne jamais être
exécutée et l'accolade n'est pas suivie de point-virgule.

20
Programmation orientée objet Mme Eya cheikh

Ne pas mettre de ";" après la condition sinon le corps de la boucle ne sera jamais
exécuté.
Exemple
int i=0;
while (i<10){
if (i<5){
System.out.println("c’est inf à 5");
}else
System.out.println("iteration "+i);
i++;}
L'instruction do while

do{
action1;
action2;
}while(condition) ;

On boucle tant que la condition est vraie Cette boucle est au moins exécuté
une fois quelque soit la valeur de la condition booléenne.

Exemple
int i=0;
do{
if (i<5){
System.out.println("c’est inf à 5");
}else
System.out.println("iteration "+i);
i++;
}while(i<10);

21
Programmation orientée objet Mme Eya cheikh

 Les instructions de branchement incondionnelles


L'instruction break
L'instruction break permet d'arrêter un bloc ou une structure (boucle ou
switch). Si plusieurs blocs sont présents break arrêtera le bloc le plus
proche.Une étiquette peut être définie pour spécifier la structure à arrêter par
break.
Exemple
repet : while
{ .....
for (. ... )
{ break ; // ce break arrête la boucle for
break repet ; // ce break arrête la boucle while }}}

L'instruction continue
L'instruction continue permet de passer prématurément au tour de boucle
suivant.
Exemple
repet : while
{ .....
for (. ... )
{ .....
continue ; //poursuivre l'itération suivante de la boucle for
continue repet ; // poursuivre l'itération suivante de la boucle while }}

22
Programmation orientée objet Mme Eya cheikh

QCM Leçon 2

1. Java est un langage développé par


(a) Hewlett-Packard
(b) Sun Microsystems
(c) Microsoft
(d) Oracle
2. A propos de Java, on prétend que (3 réponses correctes)
(a) Java est un langage portable
(b) Java est un langage orienté objet.
(d) Java est un langage propre à une machine
(e) Java est un langage sécurisé
3. Quand un programme java est compilé, le fichier généré possède l'extension :
(a) jav
(b) exe
(c) class
(d) java
4. Qu’est ce qui permet la portabilité de java
(a) le JRE
(b) la JVM
(c) le JDK
5. Après compilation du fichier « examen.java », parmi les instructions suivantes,
laquelle va permettre de « l’exécuter » :
(a) java Exame
(b) javac examen
(c) java examen.java
(d) java examen

23
Programmation orientée objet Mme Eya cheikh

7. Lequel de ces identificateurs est incorrect ?


(a) Total
(b) nom_prenom
(c) 2emechoix
(d) valeur$
8. Lequel n'est pas une expression valide ?
(a) (2 == x - 7 * 3) + 1
(b) x + 4
(c) 3 * (Y - 2) + 1 % 1
(d) (27 + 2 / 3) <= 3 – 1
9. Quelle est la valeur de l'expression x = 3 * a / 2.0F si l'on suppose que a est une
variable de type int qui vaut 7, que x est une variable de type float et que la
valeur de x avant affectation est 12 ?
(a) 12.0
(b) 10.5
(c) Ce n'est pas une expression
(d) 12.0
10. Qu'elle est la valeur de l'expression 2 * 3 + 1 == 5 + 2 && 1 + 3 * 1 <= 8 / 2 ?
(a) 1
(b) 10
(c) true
(d) false
11. Que va afficher le code à la console ?
int x = 7;
switch (x){
case 6:
case 7:
case 8:System.out.print("A");
case 9:

24
Programmation orientée objet Mme Eya cheikh

case 10:System.out.print("B");
break;
default:System.out.print("C");
}
(a) Erreur de compilation
(b) AC
(c) BC
(d) AB
(e) Rien du tout
12. Quel sera le résultat de la compilation et l'exécution du code suivant?
int i = 0, j = 5;
for ( ; (i < 3) && (j++ < 10) ; i++ )
{ System.out.print(" " + i + " " + j);
}
System.out.print(" " + i + " " + j);
(a) 0 6 1 7 2 8 3 8
(b) 0 6 1 7 2 8 3 9
(c) 0 5 1 5 2 5 3 5
(d) Rien du tout
(e) Erreur de compilation

25

Vous aimerez peut-être aussi