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

Contenu supprimé Contenu ajouté
Byroot (discussion | contributions)
Aucun résumé des modifications
Byroot (discussion | contributions)
Ligne 70 :
==Case==
 
Quand on ne peut répondre que par oui ou par non a une question le if convient très bien (if FaitBeau then sortir le parasol else le ranger).
Mais si par exemple on veut traiter de l'age de quelqu'un se limiter à jeune/vieux est peut etre un peu sectaire.
 
Il arrivait donc souvent de se retrouver avec ça:
<source lang="Delphi">
if I in [1..5] then
Caption := 'Bas'
else if I in [6..10] then
Caption := 'Haut'
else if (I = 0) or (I in [10..99]) then
Caption := 'Hors de l''intervalle'
else
Caption := '';
</source>
 
Comme c'est illisible et fastidieux on à crée le '''case''' ('''switch''' en C). La syntaxe du case est la suivante:
 
<source lang="Delphi">
case expressionSelection of
listeCas1: instruction1;
...
listeCasn: instructionn;
else
instructions;
end
</source>
où instructions est un suite d'instructions séparées par des points virgules. Quand une instruction case est exécutée, au moins l'une des instruction1 ... instructionn est exécutée. Le listeCas dont la valeur est égale à celle de expressionSelection détermine l'instruction à utiliser. Si aucun des listeCas n'a la même valeur que expressionSelection, alors ce sont les instructions de la clause else (s'il y en a) qui sont exécutées.
 
Donc si on reprend le premier exemple avec un case ça donne:
<source lang="Delphi">
case I of
1..5: Caption := 'Bas';
6..9: Caption := 'Haut';
0, 10..99: Caption := 'Hors de l''intervalle';
else
Caption := '';
end;
</source>
 
C'est tout de même plus clair et conçis.
 
==Repeat==