Cours/tp n - btsig.org

publicité
Cours Java
Cours n°: 3 Le if
Objectifs :.Les instructions conditionnelles : Le if
Difficultés : .Aucune
Pour ce nouveau cours, nous allons aborder les instructions conditionnelles et plus particulièrement le if. A
partir de maintenant nous allons utiliser une classe spécialisée dans la récupération des données saisies au clavier. En
effet, java est limité en fonction simple de gestion du clavier. Cette classe a été tirée de l’excellent livre de Claude
Delannoy : Programmer en Java édité chez Eyrolle. Faites en sorte que le fichier clavier.class ou clavier.java soit dans
le même répertoire que les sources java que vous allez créer sinon votre classe ne sera pas incorporée et vous aurez des
messages d’erreurs. Vous trouverez en annexe le source de cette classe.
Les blocs d'instructions
Comme nous allons le voir plus loin dans ce chapitre, il peut-être utile, selon les situations, de placer plusieurs
instructions à un endroit précis. Or certaines constructions (instructions), n'accepte qu'une seule sous-instruction
(comme, par exemple, pour le if). Pour palier à ce problème, une solution agréable à était utilisée (en fait, héritée de C) :
on définit un bloc d'instruction comme étant une instruction.
Au point de vue de la syntaxe, un bloc d'instructions commence par une accolade ouvrante et se termine par une
accolade fermante. Entre ces deux caractères, nous y trouvons les sous-instructions, qui sont séparées les unes des
autres par des points-virgules. Attention : la dernière instruction d'un bloc doit se terminer, elle aussi, par un pointvirgule. Le bloc peut contenir zéro (bloc vide), une (équivalent à une instruction unique) ou plusieurs sous-instructions.
Fichier "tp31.java"
public class tp31 {
public static void main(String args[]) {
{
// Un nouveau bloc, lui même dans un bloc
System.out.println("Un");
System.out.println("Deux");
System.out.println("Trois");
}
System.out.println("Exit");
}
}
L'instruction conditionnelle if
Syntaxiquement parlant, l'instruction conditionnelle s'introduit avec le mot clé if (attention, majuscules et minuscules
sont différentes en Java : IF ou If ou bien encore iF sont des identificateurs différents). Il faut faire suivre cet
identificateur d'un test (une expression booléenne) parenthésée, puis d'une instruction. Cette dernière sera exécutée
uniquement si la valeur du test est vraie (true). Si ce n'est pas le cas, il est possible de rajouter le mot clé else suivi
d'une instruction qui sera alors lancée. Le tp suivant vous donne la syntaxe complète
Jean-Luc Baptiste
www.btsig.org
Page 1/4
Cours Java
Fichier "tp32.java"
public class tp32 {
public static void main(String args[]) {
int i ; // on initialise i comme un entier
System.out.println("saisissez un nombre");
i=Clavier.lireInt(); // on utilise la méthode LireInt
if (i != 1) // si i est différent de 1 alors
{
System.out.println("Vous avez saisi :"+i);
System.exit(-1);//fin du programme
}
else // sinon
{
System.out.println("bravo");
}
}
}
Notez bien que la partie associée à un résultat faux, est facultative. Autre détail important, même si votre test se réduit
en la valeur d'une variable déclarée comme booléenne, il est obligatoire de la parenthéser. Rien de supplémentaire est à
ajouter sur cette instruction.
Pour vous faire réfléchir exécutez ce programme et analysez le comportement de System.out.println.
Fichier "tp33.java"
public class tp33 {
public static void main(String args[])
{
int i ;
System.out.println("saisissez un nombre");
i=Clavier.lireInt();
System.out.println(i!=1 ? "Vous avez saisi :"+i: "bravo");
}
}
Vous avez remarqué ? Vous pouvez revenir sur le tp 2 pour voir la caractéristique du "?" (appelé opérateur ternaire).
C'est élégant non ? Maintenant vous devenez un optimisateur !
Jean-Luc Baptiste
www.btsig.org
Page 2/4
Cours Java
Exercices applicatifs
Exercice 1 :
Concevez le programme correspondant à l'algorithme suivant :
algo. RESULTAT
début
écrire(clavier) " Veuillez saisir la note"
lire(clavier) la note
si note >= 10
écrire(écran) "Vous êtes admis(e)"
si note < 12
écrire(écran) "Votre mention est assez bien".
sinon
si note < 14
écrire(écran) "Votre mention est bien".
sinon
si note < 16
écrire(écran) "Votre mention est très bien".
finsi
finsi
finsi
sinon
si note >= 8
écrire(écran) "Vous êtes sur liste d'attente"
sinon
écrire (écran) "Vous êtes refusé(e)"
finsi
finsi
fin
Exercice 2 :
L'utilisateur donne deux valeurs entières distinctes. Ecrire un algorithme qui calcule dans une variable la valeur du plus
grand de ces deux nombres puis l'affiche.
Note : on peut écrire deux variantes :
•
une avec si...alors...sinon...
•
une avec si...alors...
Modifier l'algorithme pour calculer le maximum de 4 nombres distincts saisis par l'utilisateur.
Une fois les 3 algorithmes réalisés, programmez les en Java.
Jean-Luc Baptiste
www.btsig.org
Page 3/4
Cours Java
Annexe 1:
Clavier.java
// classe fournissant des fonctions de lecture au clavier import java.io.* ;
public class Clavier
{ public static String lireString ()
// lecture d'une chaine
{ String ligne_lue = null ;
try
{ InputStreamReader lecteur = new InputStreamReader (System.in) ;
BufferedReader entree = new BufferedReader (lecteur) ;
ligne_lue = entree.readLine() ;
}
catch (IOException err)
{ System.exit(0) ;
}
return ligne_lue ;
}
public static float lireFloat ()
// lecture d'un float
{ float x=0 ;
// valeur a lire
try
{ String ligne_lue = lireString() ;
x = Float.parseFloat(ligne_lue) ;
}
catch (NumberFormatException err)
{ System.out.println ("*** Erreur de donnee ***") ;
System.exit(0) ;
}
return x ;
}
public static double lireDouble ()
// lecture d'un double
{ double x=0 ;
// valeur a lire
try
{ String ligne_lue = lireString() ;
x = Double.parseDouble(ligne_lue) ;
}
catch (NumberFormatException err)
{ System.out.println ("*** Erreur de donnee ***") ;
System.exit(0) ;
}
return x ;
}
public static int lireInt ()
// lecture d'un int
{ int n=0 ;
// valeur a lire
try
{ String ligne_lue = lireString() ;
n = Integer.parseInt(ligne_lue) ;
}
catch (NumberFormatException err)
{ System.out.println ("*** Erreur de donnee ***") ;
System.exit(0) ;
}
return n ;
}
Jean-Luc Baptiste
www.btsig.org
Page 4/4
Téléchargement