La syntaxe de la structure conditionnelle Si...Sinon...Fin de si est la suivante :
Si(Expression_booléenne)
instruction(s)
Sinon
instruction(s)
Fin de si
A noter que l'élément Sinon est optionnel, vous pouvez écrire :
Si(Expression_booléenne)
instruction(s)
Fin de si
La structure Si...Sinon...Fin de si permet à votre méthode de choisir dans une alternative, en fonction du résultat, VRAI ou FAUX, d’un test (une expression booléenne).
Si l’expression booléenne est VRAIE, les instructions qui suivent immédiatement le test sont exécutées. Si l’expression booléenne est FAUSSE, les instructions suivant la ligne Sinon sont exécutées. Le Sinon est optionnel ; lorsqu’il est omis, c’est la première ligne d’instructions suivant le Fin de si (s’il y en a une) qui est exécutée.
A noter que l'expression booléenne est toujours évaluée en totalité. Examinons en particulier le test suivant :
Si(MéthodeA & MéthodeB)
...
Fin de si
L'expression n'est VRAIE que si les deux méthodes sont VRAIES. Or, même si MéthodeA retourne FAUX, 4D évaluera quand même MéthodeB, ce qui représente une perte de temps inutile. Dans ce cas, il est préférable d'utiliser une structure du type :
Si(MéthodeA)
Si(MéthodeB)
...
Fin de si
Fin de si
Le résultat est équivalent et MéthodeB n'est évaluée que si nécessaire.
$Rech:=Demander(Saisissez un nom)
Si(OK=1)
CHERCHER([Personnes];[Personnes]Nom=$Rech)
Sinon
ALERTE("Vous n'avez pas saisi de nom.")
Fin de si
Astuce : Il n'est pas obligatoire que des instructions soient exécutées dans chaque branche de l'alternative. Lorsque vous développez un algorithme, ou lorsque vous poursuivez un but précis, rien ne vous empêche d'écrire :
Si(Expression_booléenne)
Sinon
instruction(s)
Fin de si
ou :
Si(Expression_booléenne)
instruction(s)
Sinon
Fin de si