Beruflich Dokumente
Kultur Dokumente
contrôle (2/5)
6 Concepts de base........................................................................................................................27
6.1 Types de base.....................................................................................................................27
6.1.1 Types Caractère et Chaîne de Caractère ....................................................................27
6.2 Structures de contrôle ........................................................................................................28
6.2.1 Sélection : if...............................................................................................................28
6.2.2 Sélection : if/else........................................................................................................28
6.3 Lecture/Ecriture standard...................................................................................................30
6.3.1 Ecriture ......................................................................................................................30
6.3.2 Lecture .......................................................................................................................30
7 Concepts avancés .......................................................................................................................31
7.1 Structure de contrôle ..........................................................................................................31
7.1.1 Répétition...................................................................................................................31
Les caractères sont codés sur 16 bits selon la norme Unicode. Les valeurs littérales
peuvent être définies de plusieurs façons :
1) On peut les écrire entre simples quotes comme 'a' ou 'b'.
2) On peut aussi utiliser la valeur du code Unicode et les caractères sont alors notés
'\uXXXX' avec XXXX le code du caractère en hexadécimal.
Par exemple '\u0066' représente le caractère f et '\u03C0' représente le caractère ? (pi)
de la langue grecque.
3) On peut les écrire comme des entiers. Voir l'exemple.
4) On peut aussi utiliser, quand ils existent, les caractères spéciaux comme '\n' pour aller à
la ligne, '\t' pour représenter une tabulation.
char a = 65 ;
char a = 'A';
Les chaînes de caractères sont écrites entre double quotes comme dans "Bonjour". Entre
ces doubles quotes elles peuvent comprendre des caractères spéciaux, des caractères
Unicode et des simples quotes.
La norme utilisée pour le codage est Unicode et non pas ASCII (American Standard Code
for Information Interchange) qui est le standard Americain permettant d'écrire les textes
anglo-saxons. L'ASCII ne normalise pas le code des caractères diacritiques comme les
caractères accentués; cela peut poser des problèmes lors de l'affichage. L'ASCII est un
sous ensemble de l'unicode.
Sur les 65 000 codes possibles (codage sur 16 bits) en Unicode, actuellement seuls 50 000
sont utilisés pour coder les caractères des principales langues dans monde (dont les 21 000
idéogrammes chinois). Des propositions pour ajouter les hiéroglyphes égyptiens ont été
faites.
6.2.1 Sélection : if
Pour écrire des calculs qui dépendent d’une condition, Java fournit la structure de contrôle
if. Elle est de la forme
if (Condition)
Instruction //Exécutée si Condition est vraie
Par exemple :
if (i > 3)
System.out.println(“i est plus grand que 3”);
Pour exécuter plusieurs instructions dans le corps du if, il faut les entourer d’accolades.
Par exemple :
If (i > 3) {
System.out.println(“i est plus grand que 3”);
System.out.println(“Et j’en suis sûr”);
}
Pour exécuter aussi une instruction lorsque la condition est fausse, on utilise :
if (Condition)
Instruction1 //Exécutée si la condition est vraie
else
Instruction2 //Exécutée si la condition est fausse
Par exemple :
if (i > 3)
System.out.println(“i est plus grand que 3”);
else
System.out.println(“i n’est pas plus grand que 3”);
if (a < 5)
if (b < 8)
System.out.println(“a < 5 et b < 8”);
else
System.out.println(“a >= 5”);
a < 5 et b < 8
Et si a est égal à 3 et b est égal à 9 ? Réfléchissez … Vous pensez qu'il n'affiche rien.
Erreur, il affiche :
a >= 5
if (a < 5) {
if (b < 8)
System.out.println(“a < 5 et b < 8”);
else
System.out.println(“a >= 5”);
}
if (a < 5) {
if (b < 8)
System.out.println(“a < 5 et b < 8”);
} else {
System.out.println(“a >= 5”);
}
Bug potentiel
Attention au else pendant. N’hésitez pas à parenthéser vos instructions if/else.
6.3.1 Ecriture
6.3.2 Lecture
7.1.1 Répétition
while (expr)
instructions;
Bug potentiel
Il faut prendre soin de vérifier que l'on sort bien de la boucle while, par exemple en
modifiant la condition dans la boucle while.
Considérons un programme qui indique le premier carré (d’un entier) supérieur à 1000
int carre = 1;
int valeur = 1;
while (carre < 1000) {
valeur++;
carre = valeur * valeur;
}
System.out.println(carre);
INFO04EXE01
Ecrivez un programme qui lise un entier N, et affiche la première puissance de 2 dont la
valeur est supérieure à N.
N'oubliez pas de recopier Clavier.class dans le répertoire qui contient votre programme.
Ecrivez un programme qui lise un entier N, puis s’il est pair le divise par 2, s’il est impair
le multiplie par 3 et ajoute 1. Cette opération est alors recommencée avec le résultat
obtenu. Le programme s’arrête quand la valeur obtenue est égale à 1.
Par exemple, partons de 3. Trois étant impair on obtient 10 (3*3+1), puis à partir de 10 on
obtient 5, puis 16, puis 8, puis 4, puis 2 , puis 1. Tous les nombres jusqu’à 3,2 1016 ont été
essayés, ils aboutissent tous à 1. Mais cette conjecture n’a pas pu être démontrée.
N'oubliez pas de recopier Clavier.class dans le répertoire qui contient votre programme
1
Le lecteur intrigué par cette conjecture, lira avec profit, l’excellent livre de Jean-Paul Delahaye « Jeux
mathématiques et mathématiques des jeux »