Ou encore, 
Tant que a=a 
... 
FinTantQue
En Java ça se traduit par : 
... 
while(true) { 
... 
}
Dans les deux cas, l’expression booléenne est toujours vraie donc le programme ne sort jamais de la boucle. La plupart 
des  langages  (C,  C++,  Java,  PHP,  etc)  proposent  des  instructions  spéciales  qui  permettent  de  sortir  d’une  boucle 
depuis  n’importe  quel  endroit  du  bloc  d’instructions  (instruction  break)  ou  même  de  relancer  la  boucle  (remonter 
directement au Tant Que) sans exécuter le reste des instructions (instruction  continue). L’une des premières choses 
que vous devez apprendre en algorithmique avec les boucles c’est que sans vouloir paraître excessif, l’utilisation des 
break  (et  continue)  est  très  déconseillée  :  de  nombreux  programmeurs,  et  pas  forcément  en  herbe,  parsèment 
l’intérieur de leurs boucles de conditions de sorties supplémentaires, qu’ils nomment souvent des "cas spéciaux" : "je 
n’ai  pas  prévu  de  gérer  ça  dans  un  cas  général,  alors  je  place  une  série  d’exceptions…".  Or  l’objectif  n’est pas de 
multiplier ces conditions, mais de toutes les réunir au sein de l’unique expression booléenne du Tant Que. Il faut donc 
réunir toutes les conditions d’arrêt de la boucle en un seul point. 
Le "break" existe tel quel en Java. Voici donc un exemple de ce que, théoriquement, il ne faut pas faire : 
class chap4_break { 
public static void main(String[] args) { 
int cpt; 
 
cpt=1; 
while(true) { 
System.out.println(cpt); 
if(cpt==10) break; 
cpt++; 
} 
} 
}
  En  algorithmique  il  est  toujours  possible  de  trouver  une  expression  booléenne,  même  si  elle  est  longue  et 
complexe,  permettant  d’éviter  l’utilisation  de  "break"  et  de  "continue".  Si  vous  n’êtes  pas  d’accord,  votre 
professeur risque de vous mettre au défi de trouver un exemple contradictoire. Peine perdue. 
Il faut cependant modérer ces propos. L’interruption d’une boucle au milieu de celle­ci est déconseillée, certes. Mais 
comme pour tout, il faut se méfier des généralisations. Il y a évidemment des cas où il devient bien trop compliqué de 
créer  des  boucles  uniquement  pour  respecter  ce  principe.  S’il  faut  créer  une  expression  booléenne  à  rallonge  et 
bidouiller (c’est le mot, parfois) son bloc d’instructions avec des méthodes tarabiscotées (des drapeaux à tout va par 
exemple),  d’autant  plus  que  celui­ci  prend  déjà  un  grand  nombre  de  lignes,  autant  utiliser  un  break.  Au  contraire 
utiliser les breaks à tort et à travers n’est pas recommandable. 
Le tout est de trouver un équilibre entre la condition de sortie et la lisibilité de l’algorithme. 
Enfin le but n’est pas de créer des boucles dont le bloc d’instructions fait dix pages (c’est une façon de parler). Dans ce 
cas, il est certes intelligent de réunir toutes les conditions de sortie en un point : ça améliore la lisibilité. Cependant, 
vous risquez de vous perdre dans votre propre programme (d’où les indentations). Vous apprendrez plus loin dans ce 
livre la notion de fonctions et de procédures qui vous permettra un découpage fin de vos blocs d’instructions qui vous 
simplifieront la vie. 
3. Des exemples 
a. Une table de multiplication 
Pourquoi ne pas s’attaquer aux exemples cités ci­dessus, et même plus, pour vous entraîner ? Commencez par la 
table de multiplication. Après avoir saisi le numéro de la table demandée, un compteur est initialisé à 1. Tant que ce 
compteur est inférieur ou égal à 10, on le multiplie par le numéro de table, puis après avoir affiché le résultat, on 
l’incrémente.  Dans  la  dernière  boucle,  le  compteur  passe  de  10  à  11.  Une  fois  remonté  au  Tant  Que,  l’expression 
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
74
Précédent

- 74/220

Suivant