Cours Java 1 Cours Java 1
1 Ph. CHOCHOIS
L
L’ ’ordinateur ordinateur
Un ordinateur est une machine électronique programmable servant au traitement de l’information codée sous forme binaire.
Un ordinateur possède une mémoire centrale. La mémoire centrale est composée d’éléments ou cases qui possèdent chacun une adresse.
Chaque case peut contenir une information.
Un ordinateur possède une unité centrale qui exécute les instructions d’un programme dans un ordre précis. Les opérations possibles sont notamment :
Lire ou écrire des informations dans la mémoire centrale Envoyer ou recevoir de l’information via le clavier ou l’écran Exécuter des opérations simples (addition, soustraction…) Comparer des valeurs.
2
Le programme et l
Le programme et l’ ’algorithme algorithme
Un programmeest un assemblage et un enchaînement d’instructions élémentaires écrit dans un langage de programmation et exécuté par un ordinateur afin de traiter les données d’un problème et renvoyer un ou plusieurs résultats
Un algorithme représente l’enchaînement des actions nécessaires pour faire exécuter une tâche à un ordinateur et résoudre un problème.
Un algorithme peut s’écrire en pseudo langage de programmation (appelé langage algorithmique)
Problème Réflexion Algorithme Codage Programme
3
Résultats Données
Programme
Exemples d
Exemples d’ ’algorithmes algorithmes
Problème 1 : Afficher « Bonjour » Programme AfficheBonjour Debut
Afficher “Bonjour“
Fin
Problème 2 : Saisir son prénom et l’afficher Programme AffichePrenom
Variables Prenom : chaine de caracteres
Debut
Afficher “Saisissez votre prenom :“
Saisir Prenom
Afficher “Votre prenom est“ , Prenom Fin
4
Exemples d
Exemples d’ ’algorithmes algorithmes
Problème 3 : Calculer la somme de 2 nombres Programme Somme Variables
Total , nb1 , nb2 : entiers Debut
Afficher “Saisissez 2 nombres :“
Saisir nb1 Saisir nb2 Total nb1 + nb2
Afficher “Le total est :“ , Total Fin
5
Exercice:
Exercice:
Ecrire un algorithme qui calcule et affiche la moyenne de 3 nombres.
Programme _ _ _ _ _ Variables
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Debut
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Fin
6
Exercice : Exercice :
Indiquez les valeurs prises par les variables dans l’algorithme ci- dessous:
7 Programme Valeurs
VARIABLES a , b , c , d : entiers DEBUT
a <- 27 b <- 45 - a c <- b - 9 d <- c + a c <- d + c b <- b - 1
FIN
Exercice : Exercice :
Indiquez les valeurs prises par les variables dans l’algorithme ci- dessous:
8 Programme Operations
VARIABLES nb1 , nb2 , nb3 : entiers DEBUT
nb1 <- 12 nb2 <- 23 nb1 <- nb2 DIV 5 nb3 <- nb1 + nb2 nb2 <- nb3 MOD nb1
FIN
Exercice : Exercice :
Relevez les erreurs dans l’algorithme ci-dessous:
9 Programme Erreurs
VARIABLES a , b , c , d : ENTIER e : CARACTERE
DEBUT a <- 10
b <- 5 d <- b a + b <- 15 e <- “d“
a <- e FIN
Exercice : Exercice :
Complétez l’algorithme ci-dessous pour effectuer une permutation (a doit prendre la valeur de b ET b doit prendre la valeur de a) :
10 Programme Permutation Variables
_ _ _ _ _ _ _ _ _ _ _ // a et b doivent permuter Debut
// Affectation a <- 3 b <- 2 // Permutation _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Fin Programme
Exercices : Exercices :
1)Ecrire un algorithme qui affiche le périmètre d’un cercle dont le rayon est donné par un utilisateur
11
2) Ecrire un algorithme qui demande à l’utilisateur de saisir le prix en euros d’une bouteille d’eau minérale de 1.5 l. Dans un deuxième temps, le programme affiche le prix au litre, le prix d’un pack d’eau, sachant qu’il y a 6 bouteilles dont une est offerte, ainsi que le prix d’une palette sachant qu’il y a 50 packs dont 5 offerts.
Langage de programmation Langage de programmation
Les algorithmes sont traduits dans un langage qui pourra être compris par un ordinateur. On l’appelle le langage de programmation.
Javaest un langage de programmation.
12
Langage JAVA Langage JAVA
JAVA est un langage de programmation objet créé en 1991 par la firme Sun Microsystems.
Il est très proche du langage C++.
C’est un langage portable (indépendant des plates formes : windows, linux….),
compilé et interprété.
Java est en plus multitâche,
robuste ( gestion d’erreurs et d’exceptions intégrées au langage), gratuit,
orienté client/serveur (traditionnel ou web).
Avec java, on peut écrire :
Des applications client/serveur traditionnel Des applications côté client pour le web (applet) Des applications côté serveur pour le web (servlet)
13
Langage JAVA: Liens utiles Langage JAVA: Liens utiles
Le site dédié à JAVA par son constructeur : http://java.sun.com/
Et plus particulièrement la documentation sur les classes (API) : http://java.sun.com/javase/6/docs/api/
Des cours et exercices en ligne : http://java.developpez.com/cours/
14
Interpr
Interpré étation et compilation tation et compilation
Un ordinateur ne connaît qu’une seule langue : celle de son processeur.
Pour exécuter un programme, il faut toujours que le code soit préalablement traduit en langage machine.
Traditionnellement on distingue deux grands types de langages : - les langages compilés tels que C/C++ , Pascal…
- les langages interprétés tels que Basic, PHP…
Dans les langages compilés, il est nécessaire de traduire tout le code préalablement à l'exécution, pendant une étape appelée compilation pour pouvoir ensuite exécuter le programme.
Dans les langages interprétés au contraire, chaque ligne du fichier est traduite en langage machine juste avant d’être exécutée. C’est l’interprétation.
15
Interpr
Interpré étation et compilation tation et compilation
Programmes compilés Avantages
Rapides à l’exécution
code source inutile pour l’exécution (copie) Inconvénients
Pas de portabilité
16
Code (Fichier texte)
Fichier en langage machine exécutable Compilation
Exécution
Interpr
Interpré étation et compilation tation et compilation
Programmes interprétés Avantages
un programme interprété peut être exécuté sur n’importe quelle machine qui possède un interpréteur du langage
Inconvénients
Lenteur (chaque instruction doit d’abord être traduite par l’interpréteur avant d’être exécutée).
l'exécution est basée sur le code source donc celui-ci doit être fourni
17
Code (Fichier
texte) Interprétation
Interpr
Interpré étation et compilation tation et compilation
Java est un langage hybride, à la fois compilé et interprété. On dit qu’il est semi-compilé.
Java est compilé dans un langage qui devra ensuite être interprété. Le résultat de la compilation n’est pas du langage machine directement exécutable (propre au processeur), mais un code intermédiaire appelé byte-code.
Pour exécuter le programme, le byte-code est interprété par un interpréteur appelémachine virtuelle Java (JVM). Ainsi, le byte-code d’un programme peut être exécuté sur n’importe quel ordinateur possédant une JVM.
Java est un langage portable.
18
Cr
Cré éation d ation d’ ’un programme Java: Outils n un programme Java: Outils né écessaires cessaires
Pour écrire et mettre au point un programme, vous aurez besoin : d'un éditeur de texte. Au choix :
Les plus courants : bloc-notes, editPlus, gedit Les spécialisés pour Java : jcreator, netbean, eclipse Du kit de développement appelé J2SE SDK (Software
Development Kit) contenant : un compilateur : javac un interpréteur : java
la machine virtuelle java appelée J2SE JRE (Java Runtime Environment )
des utilitaires. Ex : javadoc pour générer de la documentation , jar pour générer des archives, appletviewer pour visualiser des applets,….
19
Cr
Cré éation d ation d’ ’un programme Java un programme Java
Le fichier source doit être enregistré avec l’extension .java et porter le même nom que la classe (ou la classe qui contient la fonction principale main s’il y en a plusieurs)
Le compilateur s’appelle javac. Pour compiler un programme java, on utilise un terminal et on tape la commande :
« javac NomDuProg.java »
La compilation génère des fichiers de byte-code avec l’extension .class, dans le même répertoire que le fichier source. Chaque classe du fichier donne lieu à la création d’un fichier « .class »
Pour exécuter une application Java, on peut utiliser la JVM qui s’appelle java, avec la commande :
« java NomDuProg »
Eventuellement, le nom du programme peut être suivi de paramètres (chaînes) à passer au programme
20
Cr
Cré éation d ation d’ ’un programme Java un programme Java
21
*.java Ecriture du code
source Editeur de texte
Compilation Cde « javac »
*.java
*.java
*.java
*.clas s
Interprétation par la JVM Cde « java »
Structure d
Structure d’ ’un programme Java un programme Java
Un programme Java est constitué d'une classe ou d’un ensemble de classes. Aucune partie de code ne peut être écrite en dehors d’une classe.
Le fichier « .java » doit obligatoirement porter le nom de la classe (ou si il en a plusieurs, le nom de celle qui est publique).
Une application Java doit toujours posséder une classe contenant une méthode appelée main . Cette fonction est celle qui est exécutée en premier et qui appelle les autres.
La méthode « main » commence ainsi :
«public static void main (String args[ ])» Exemple d’une application Java
22 public class Bonjour {
public static void main (String args[ ]){
System.out.println(“Bonjour”);
} }
Syntaxe d
Syntaxe d’ ’un programme Java un programme Java
- Les instructions sont terminées par un ; - Les blocs sont délimités par des accolades { }
- Les commentaires sur une ligne commencent par // et ceux qui sont sur plusieurs lignes sont délimités par /* */
- Distinction majuscules-minuscules -Les opérateurs sont :
= (affectation) + - * /
! (non) &&(et) ||(ou)
!= (différent) == (égal) <= >= < >
++ (incrémentation)
23 public class Bonjour {
public static void main (String args[ ]){
System.out.println(“Bonjour”);
} }
Stocker une information Stocker une information
Avec JAVA, on peut manipuler des variables : Simples : entier, caractère,…
Structurées ou complexes : les objets Multiples : collections, listes ou tableaux
24
Manipulation d
Manipulation d’ ’une variable simple une variable simple
Il est obligatoire de déclarer une variable avant de l’utiliser.
Déclarer, c’est définir le type de la variable.
Syntaxe pour définir une variable: « type nomVariable ; »
On peut affecter une valeur à une variable dès sa définition : c’est une initialisation !
Convention pour nommer une variable:
Le nom d’une variable commence par une minuscule. Par opposition, les classes devront commencer par une majuscule.
25 int a ; // a est un entier
int b , c ; // b et c sont des entiers
int a = 3 ; // a est un entier et a pour valeur 3
Manipulation d
Manipulation d’ ’une variable simple une variable simple
Catégorie entier
Elle permet l’emploi de valeurs numériques entières et signées.
Type Taille occupée Eventail de valeurs dans la mémoire
byte 1 octet De –128 à 127 short 2 octets De 32 768 à 32 767 int 4 octets De – 2 147 483 648 à 2 147 483 647
long 8 octets De – 9 223 372 036 854 775 808 à 9 223 372 036 854 775 807
Catégorie réel
Elle permet l’emploi de nombres à virgule.
Type Taille occupée Eventail de valeurs dans la mémoire
float 4 octets -1.4*10-45à 3.4*1038 Double 8 octets 4.9*10-324à 1.7*10308
26
Manipulation d
Manipulation d’ ’une variable simple une variable simple
Catégorie texte
char : il sert à représenter des caractères isolés.
Un caractère est codé sur 2 octets.
L’éventail des valeurs est donc de 65 536 caractères différents (216).
ATTENTION :
'F' est considéré comme une variable de type char
"F" est considéré comme un objet de classe String
Catégorie logique Il s’agit du type boolean.
Un caractère est codé sur 1 bit.
L’éventail des valeurs est : {false, true} ce qui est traduit par {0,1}
conversion de types simples (casting)
On peut facilement changer le type d’une donnée, cela s’appelle faire une opération de cast.
Exemple : int x; x = (int) 8.324;
27
Afficher une information Afficher une information
En mode console : System.out.println(…)
28 System.out.print(expr); //affiche le contenu de expr System.out.println() ; // saute une ligne
System.out.println(expr) ; // affiche à l’écran le // contenu de expr et saute une ligne
System.out.println("Mon texte") ; // affiche à // l’écran le texte et saute une ligne
System.out.println("Mon texte" + expr) ; // affiche à // l’écran le le texte et le contenu // de expr int a
Saisir et r
Saisir et ré écup cupé érer une information rer une information
En mode console:
Il n’existe pas de méthode prédéfinie pour lire les données saisies par l’utilisateur dans une console.
Vous allez donc utiliser les méthodes définies dans la classe Lire (classe à télécharger). Cette classe n’est pas une classe définie par Java.
Class Lire. Voici ses 4 méthodes:
- static String lireStr() //renvoie la saisie de l’utilisateur sous forme //d’une donnée de type String
- static float lireFloat() //renvoie la saisie de l’utilisateur sous forme //d’une donnée de type float
- static int lireInt() // renvoie la saisie de l’utilisateur sous forme // d’une donnée de type int
- static char lireChar() //renvoie la saisie de l’utilisateur sous forme //d’une donnée de type char
Pour les utiliser, vous devrez faire référence à la classe afin que le compilateur puisse savoir où trouver la définition de ces méthodes.
29 System.out.println(" Entrez votre age ") ;
int age = Lire.lireInt() ;
Structures conditionnelles Structures conditionnelles
Syntaxe 1: if (condition) {//instructions…}
Syntaxe 2: if (condition) {//instructions…}
else
{//instructions…}
30 if (a > b)
{System.out.println("a est le plus grand" );}
if (a > b)
{System.out.println("a est le plus grand" );}
else
{System.out.println("b est le plus grand" );}
Structures conditionnelles Structures conditionnelles
Exemple: Ecrire un algorithme qui affiche un message « Mineur » si vous avez moins de 18 ans et « Majeur » dans le cas contraire:
31 Programme Cinema
VARIABLES age : entier
DEBUT afficher “Saisir votre age:”
saisir age si age < 18
alors afficher “Vous êtes mineur !”
sinon afficher “Vous êtes majeur !”
finSi
FIN
Structures conditionnelles Structures conditionnelles
Exemple: Ecrire un algorithme qui affiche un message « Mineur » si vous avez moins de 18 ans et « Majeur » dans le cas contraire:
32 public class Cinema {
public static void main (String args[ ]){
int age;
System.out.println(“Saisir votre age:”);
age = Lire.lireInt();
if (age < 18)
System.out.println(“Mineur !”);
else
System.out.println(“Majeur !”);
} }
Structures conditionnelles Structures conditionnelles
Syntaxe 3: if (condition) {//instructions…}
elseif (condition) {//instructions…}
else {//instructions…}
33 if (a > b)
{System.out.println("a est plus grand que b" );}
elseif (b > c)
{System.out.println("b est le plus grand" );}
else
{System.out.println("c est le plus grand" );}
Structures conditionnelles Structures conditionnelles
Exercices:
Ecrivez un algorithme qui affiche si la lettre saisie par l'utilisateur est une voyelle ou une consonne
Ecrivez un algorithme qui calcule puis affiche la différence entre deux nombres entiers saisis au clavier. Le résultat doit être toujours positif.
34
Structures conditionnelles Structures conditionnelles
Exercices:
Ecrivez un algorithme qui affiche si la lettre saisie par l'utilisateur est une voyelle ou une consonne…
35 Programme VoyelleConsonne
Variables
lettre : caractère Début
Afficher "Saisir une lettre:"
Saisir lettre
si lettre=‘A’ ou lettre=‘E’ ou lettre=‘I’ ou lettre=‘O’
ou lettre=‘U’ ou lettre=‘Y’
alors afficher "C’est une voyelle !"
sinon afficher "C’est une consonne !"
FinSi Fin
Structures conditionnelles Structures conditionnelles
Exercices:
Voici le programme Java qui affiche si la lettre saisie par l'utilisateur est une voyelle ou une consonne…
36 public class VoyelleConsonne {
public static void main(String[] args) { char lettre;
System.out.println("Saisir une lettre:");
lettre=Lire.lireChar();
if (lettre=='A' || lettre=='E' || lettre=='I' ||
lettre=='O' || lettre=='U' || lettre=='Y') System.out.println("C'est une voyelle !");
else System.out.println("C'est une consonne !");
} }
Structures conditionnelles Structures conditionnelles
Exercices:
Ecrivez un algorithme qui calcule puis affiche la différence entre deux nombres entiers saisis au clavier. Le résultat doit être toujours positif.
37 Programme Différence
Variables
nombre1 , nombre2 : entiers Début
Afficher "Saisir le premier nombre:"
Saisir nombre1
Afficher "Saisir le deuxième nombre:"
Saisir nombre2 si nombre1 > nombre2
alors afficher (nombre1 – nombre2) sinon afficher (nombre2 – nombre1) FinSi
Fin
Structures conditionnelles Structures conditionnelles
Exercices:
Voici le programme Java qui calcule puis affiche la différence entre deux nombres entiers saisis au clavier. Le résultat doit être toujours positif.
38 public class Difference {
public static void main(String[] args) { int nombre1 , nombre2;
System.out.println("Saisir le nombre 1:");
nombre1=Lire.lireInt();
System.out.println("Saisir le nombre 2:");
nombre2=Lire.lireInt();
if (nombre1 > nombre2)
System.out.println(nombre1-nombre2);
else System.out.println(nombre2-nombre1);
} }
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux
Saisir le code tarif correspondant au poids d’une lettre et afficher le prix à payer
39
Poids Code tarif Tarif net
< ou égal à 20g A 0,50 euro
> 20g B 1,00 euro
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux
Saisir le code tarif correspondant au poids d’une lettre et afficher le prix à payer
40 Programme tarifsPostaux
VARIABLES codeTarif : CARACTERE DEBUT
SAISIR codeTarif SI codeTarif = ‘A’
ALORS Afficher 0.50 SINON SI codeTarif = ‘B’
ALORS Afficher 1.00 FINSI
FINSI FIN
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux
Saisir le code tarif correspondant au poids d’une lettre et afficher le prix à payer
41 public class tarifsPostaux {
public static void main(String[] args){
int codeTarif;
System.out.println("Saisir un code tarif:");
codeTarif = Lire.lireChar();
if (codeTarif == 'A')
System.out.println("0.50 euro");
else if (codeTarif == 'B')
System.out.println("1.00 euro");
} }
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux
Saisir le code tarif correspondant au poids d’une lettre et afficher le prix à payer et afficher un message d’erreur si la lettre pèse plus de 500 grammes
42
Poids jusqu’à… Code tarif Tarif net
20 g A 0,50 euro
50 g B 0,75 euro
100 g C 1,11 euro
250 g D 1,90 euro
500 g E 2,65 euros
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux
43 Programme tarifsPostaux2
VARIABLES
codeTarif : CARACTERE Début
SAISIR codeTarif SI codeTarif = ‘A’
ALORS Afficher 0.5 SINON SI codeTarif = ‘B’
ALORS Afficher 0.75 SINON SI codeTarif = ‘C’
ALORS Afficher 1.11 SINON SI codeTarif = ‘D’
ALORS Afficher 1.9 SINON SI codeTarif = ‘E’
ALORS Afficher 2.65 SINON Afficher
“Adressez vous à votre bureau de poste“
FINSI FINSI FINSI FINSI FINSI FIN
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux (autre possibilité)
44 Programme tarifsPostaux
VARIABLES
codeTarif : CARACTERE Début
SAISIR codeTarif SELON codeTarif
CAS ‘A’ :Afficher 0.5 CAS ‘B’ : Afficher 0.75 CAS ‘C’ : Afficher 1.11 CAS ‘D’ : Afficher 1.90 CAS ‘E’ : Afficher 2.65
SINON : Afficher “Adressez vous à votre bureau de poste“
FINSELON FIN
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux
Saisir le code tarif correspondant au poids d’une lettre et afficher le prix à payer
45 public class tarifsPostaux {
public static void main(String[] args){
int codeTarif;
System.out.println("Saisir un code tarif:");
codeTarif = Lire.lireChar();
if (codeTarif == 'A')
System.out.println("0.50 euro");
else if (codeTarif == 'B')
System.out.println("1.00 euro");
} }
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux (EN JAVA)
46 public class tarifsPostaux{
public static void main(String args[]){
char codeTarif;
System.out.println("Saisir un code:");
codeTarif=Lire.lireChar();
if (codeTarif == 'A') System.out.println(0.50);
else if (codeTarif == 'B') System.out.println(0.75);
else if (codeTarif == 'C') System.out.println(1.11);
else if (codeTarif == 'D') System.out.println(1.90);
else if (codeTarif == 'E') System.out.println(2.65);
else
System.out.println("Adressez vous à votre bureau de poste");
} }
Structures conditionnelles Structures conditionnelles
Exercices: Tarifs postaux (EN JAVA)
47 public class tarifsPostaux2{
public static void main(String args[]){
char codeTarif;
System.out.println("Saisir un code:");
codeTarif=Lire.lireChar();
switch (codeTarif){
case 'A': System.out.println(0.50);break;
case 'B': System.out.println(0.75);break;
case 'C': System.out.println(1.11);break;
case 'D': System.out.println(1.90);break;
case 'E': System.out.println(2.65);break;
default: System.out.println("Adressez vous à votre bureau de poste");
} } }
Structures conditionnelles Structures conditionnelles
Cas particulier des chaînes de caractères (String):
Une chaîne de caractères est un type particulier. A ce titre, on ne peut pas comparer une chaîne de caractères de façon simple.
Si on compare 2 caractères, on peut écrire :
Mais si on compare de chaînes de caractères, on ne peut pas écrire :
Il faut écrire:
48
if (a == b)
System.out.println("Egalité");
if (ch1 == ch2)
System.out.println("Egalité");
if (ch1.equals(ch2))
System.out.println("Egalité");
Structures conditionnelles Structures conditionnelles
Cas particulier des chaînes de caractères (String):
On peut aussi écrire:
49
if (ch1.compareTo(ch2)==0) System.out.println("Egalité");
else if (ch1.compareTo(ch2) > 0)
System.out.println("ch1 est plus grand");
else
System.out.println("ch2 est plus grand");
Structures r
Structures ré ép pé étitives titives
50
Structures r
Structures ré ép pé étitives titives
Exemple introductif : Ecrire les 10 premiers nombres entiers
Cette solution est peu intéressante… surtout si nous devons écrire les 100 premiers entiers… voire plus
Pour éviter cela, nous allons demander au programme de faire la répétition lui-même grâce aux structures répétitives
51 PROGRAMME nombreEntiers
VARIABLES DEBUT
Afficher 1 Afficher 2 Afficher 3 Afficher 4 Afficher 5 Afficher 6 Afficher 7 Afficher 8 Afficher 9 Afficher 10 FIN
Structures r
Structures ré ép pé étitives titives
Première structure répétitive: POUR
52 PROGRAMME nombreEntiers
VARIABLES i: entier DEBUT
POUR i allant de 1 jusqu à 10 Afficher i
FINPOUR FIN
Structures r
Structures ré ép pé étitives titives
Traduction en Java:
53 public class nombreEntiers {
public static void main(String args[]){
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
System.out.println(6);
System.out.println(7);
System.out.println(8);
System.out.println(9);
System.out.println(10);
} }
public class nombreEntiers { public static void main(String args[]){
for(int i=1;i<=10;i++){
System.out.println(i);
} } }
Structures r
Structures ré ép pé étitives titives
La structure FOR
for(int i=1;i<=10;i++){
System.out.println(i);
}
54 Les instructions à répéter sont incluses entre les accolades ouvrantes et fermantes Les conditions de la boucle sont au nombre de
3. Elles sont écrites entre parenthèses et séparées par des point-virgules
La 3ièmeexpression indique l’opération à faire après chaque tour de boucle
La 1èreexpression indique ce qu’il faut faire avant d’exécuter les instructions
La 2ièmeexpression indique la condition qui indique si on doit continuer la boucle
Structures r
Structures ré ép pé étitives titives
L’instruction FOR est intéressante lorsqu’on doit faire une répétition n fois, avec n connu.
Cependant, le nombre de répétitions à faire n’est pas toujours connu initialement.
Exemple: Afficher « On continue ? » tant que l’utilisateur ne dit pas
« NON »
Nous allons utiliser une autre structure répétitive: l’instruction TANT QUE ou WHILE
55 PROGRAMME continue
VARIABLES
reponse : Chaîne de caractères DEBUT
Afficher “On continue ?”
Saisir reponse TANT QUE reponse <> “NON”
Afficher “On continue ?”
Saisir reponse FIN TANTQUE FIN
Structures r
Structures ré ép pé étitives titives
Traduction en Java:
56 public class Test {
public static void main(String args[]){
String reponse;
System.out.println("On continue ?");
reponse=Lire.lireStr();
while (! reponse.equals("NON")){
System.out.println("On continue ?");
reponse=Lire.lireStr();
} } }
Structures r
Structures ré ép pé étitives titives
La structure WHILE
while(!reponse.equals("NON")){
System.out.println("On continue ?");
reponse=Lire.lireStr();
}
57 Les instructions à répéter sont incluses entre les accolades ouvrantes et fermantes La condition de la boucle est écrite entre
parenthèses
La condition doit retourner un booléen : TRUE ou FALSE.
Elle indique si on doit continuer la boucle
Structures r
Structures ré ép pé étitives titives
Autre structure: FAIRE TANT QUE ou DO WHILE
Traduction en Java:
58 public class Test {
public static void main(String args[]){
String reponse;
do{System.out.println("On continue ?");
reponse=Lire.lireStr();
}while (! reponse.equals("NON"));
} }
PROGRAMME continue VARIABLES
reponse : Chaîne de caractères DEBUT
FAIRE
Afficher “On continue ?”
Saisir reponse TANTQUE reponse <> “NON”
FIN
Structures r
Structures ré ép pé étitives titives
La structure WHILE
do {
System.out.println("On continue ?");
reponse=Lire.lireStr();
} while(!reponse.equals(“NON));
59 Les instructions à répéter sont incluses entre les
accolades ouvrantes et fermantes
La condition de la boucle est écrite entre parenthèses et se termine par un point virgule
La condition doit retourner un booléen : TRUE ou FALSE.
Elle indique si on doit continuer la boucle
Structures r
Structures ré ép pé étitives titives
Exercices:
- Afficher les 10 premiers nombres pairs - Saisir 10 nombres et afficher le plus grand
- Affichez la somme des nombres entiers positifs saisis par l’utilisateur.
l’utilisateur peut saisir n nombres. Il saisira un nombre négatif pour indiquer que la saisie est terminée.
60
Structures r
Structures ré ép pé étitives titives
Exercices:
- Afficher les 10 premiers nombres pairs
61 public class Test {
public static void main(String args[]){
for (int i=0; i<10; i++){
System.out.println(i*2);
} } }
Structures r
Structures ré ép pé étitives titives
Exercices:
- Saisir 10 nombres et afficher le plus grand
62 public class Test {
public static void main(String args[]){
int max=0,nombre;
for (int i=1; i<11; i++){
System.out.println("Saisir le nombre "+i+":");
nombre=Lire.lireInt();
if (nombre>max) max=nombre;
}
System.out.println("Le plus grand nombre est:"+max);
} }
Structures r
Structures ré ép pé étitives titives
Exercices:
- Affichez la somme des nombres entiers positifs saisis par l’utilisateur.
l’utilisateur peut saisir n nombres. Il saisira un nombre négatif pour indiquer que la saisie est terminée.
63 public class Test {
public static void main(String args[]){
int somme=0,nombre;
System.out.println("Saisir un nombre :");
nombre=Lire.lireInt();
while (nombre>=0){
somme += nombre;
System.out.println("Saisir un nombre :");
nombre=Lire.lireInt();
}
System.out.println("La somme est:"+somme);
} }