Pas si sur, Delphi réalise par défaut l'optimisation des expression booléennes
Ainsi :
1 2
| If A And B And C
Then ... |
Si A vaut false, B et C ne seront pas du tout évalués. L'évaluation va de gauche à droite. Autrement dis dans ton exemple avec le probalilités on peut écrire que :
if (A = D ) And ( A < C ) And ( A > B ) then
Sera plus rapide en moyenne que :
if ( A > B ) And ( A < C ) And (A = D ) then
Delphi faut aussi le tri sur le OR :
1 2
| If A Or B Or C
Then ... |
Si A est vrai, B et C ne seront pas évalués. Ainsi l'optimisation est faite alors qu'a l'écrire à la main ce serait plus chiant :
1 2 3
| If A Then DoTruc
Else If B Then DoTruc
Else If C Then DoTruc |
Partager