« Delphi/Structures conditionnelles et répétitives » : différence entre les versions

Contenu supprimé Contenu ajouté
Byroot (discussion | contributions)
Byroot (discussion | contributions)
Ligne 137 :
 
==While==
L'instruction '''While''' se traduit par "tant que". Concrètement le bloc d'instruction associé à while se répétera indéfiniment tant que la condition associée renverra la valeur booléenne True(vrai).
Une instruction while est similaire à l'instruction repeat à cette différence près que la condition de contrôle est évaluée avant la première itération de la séquence d'instructions. Donc, si la condition est fausse, la séquence d'instructions n'est jamais exécutée.
While est donc similaire a repeat a la différence près que la condition est évalué avant l'exécution, par conséquent il se peut qu'une boucle while ne soit jamais exécuté alors qu'une repeat garanti au moins une itération.
 
L'instruction while a la syntaxe suivante :
 
while expression do instruction
 
où expression renvoie une valeur booléenne et instruction peut être une instruction composée. L'instruction while exécute répétitivement son instruction, en testant expression avant chaque itération. Tant que expression renvoie True, l'exécution se poursuit.
 
Voici des exemples d'instructions while
 
<source lang="delphi">
while (Tableau[Index] <> X) do //Tant que la valeur contenue dans cette "case"" du tableau n'est pas celle qu'on attend
while Data[I] <> X do I := I + 1;
Inc(Index); //On se déplace a la case suivante // Inc() signifie Incrémenter , Ajouter 1
while I > 0 do
begin
if Odd(I) then Z := Z * X;
I := I div 2;
X := Sqr(X);
end;
</source>
 
'''Attention''': Si jamais la condition ne peut jamais être vrai vous créez ce qu'on appel une boucle infinie, votre programme ne se termine jamais. C'est à éviter absolument.
Exemple:
<source lang="delphi">
Index := 1;
while not Eof(FicSource) do
while ITrue >do // 0 do
begin
//instructions;
Readln(FicSource, Ligne);
Process(Ligne);
end;
</source>
Il parait évident que cette boucle ne peut pas se finir.
 
==For==