Instructions conditionnelles dans iLogic

Vous utilisez le langage de programmation Visual Basic (VB.NET) pour créer des règles iLogic. Les instructions conditionnelles telles que If-Then-Else permettent à vos règles d'effectuer les actions en fonction de certains critères.

Instruction If-Then-Else dans iLogic

Dans l'instruction If-Then-Else, un jeu d'actions s'exécute si la condition est vraie tandis qu'un autre jeu d'actions s'exécute si la condition est fausse :

(1) Condition (2) Vrai (3) Faux (4) Si la condition est vraie, suivez ces instructions (5) Si la condition est fausse, suivez ces instructions.

Après l'exécution de l'instruction Vrai ou Faux, le contrôle du programme reprend à l'instruction suivante.

Dans iLogic, vous pouvez utiliser des blocs de code ou un format multiligne pour implémenter la structure If-Then-Else.

Par exemple :

If size = “small” Then
length = 6.0
Else
length = 12
End If

Si l'expression conditionnelle est vraie, les instructions entre les mots-clés Then et Else sont exécutées. Les instructions entre les mots-clés Else et End If sont ignorées. Si l'expression conditionnelle est fausse, les instructions entre les mots-clés Else et End If sont exécutées. Les instructions entre les mots-clés Then et Else sont ignorées. Dans tous les cas, le contrôle du programme reprend à l'instruction suivant l'instruction End If.

Instruction If-Then dans iLogic

Dans une instruction If-Then-Else, l'action est effectuée, que la condition soit vraie ou fausse. Toutefois, lorsque vous effectuez une action ou un jeu d'actions uniquement si une condition est vraie, mais n'effectuez aucune action si la condition est fausse :

(1) Condition (2) Vrai (3) Si la condition est vraie, suivez ces instructions (4) Faux

Vous pouvez omettre la partie Else de la structure If du bloc. Par exemple :

If size = “small” Then
length = 6.0
End If

Jeux d'actions nuls ou vides dans iLogic

Vous pouvez également utiliser les jeux d'actions nuls ou vides dans le format en bloc de l'instruction If. Vous pouvez, par exemple, déclarer "si la condition est vraie, ne rien faire - sinon, faire quelque chose", comme dans le bloc suivant :

If length  > 20 Then
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title")
End If

Lorsque vous utilisez un jeu d'actions vide, améliorez la lisibilité en incluant un commentaire là où les instructions vraies devraient aller :

If length  > 20 Then’do nothing
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in ", "Title")
End If

Utilisation de l'instruction If comme instruction sur une seule ligne

Bien que le format en bloc de l'instruction If améliore la lisibilité, vous pouvez écrire l'instruction If comme une ligne unique. Dans ce format, l'instruction End If n'est pas utilisée.

Exemples :

If length < 20 Then MessageBox.Show("Length is Too Short", "Title")
If mass < 1000 Then length =20 Else length =40

Utilisation des variables booléennes dans des expressions conditionnelles

Une variable booléenne, qui permet de conserver la valeur vraie ou fausse, peut être utilisée n'importe où une expression relationnelle est valide.

Par exemple, les deux instructions suivantes sont équivalentes :

If Feature.IsActive("Fillet1") = true Then . . .
If Feature.IsActive("Fillet1") Then . . .

Dans la seconde instruction, la valeur vraie est déduite.

De même, les deux instructions suivantes sont interchangeables pour vérifier si une valeur booléenne variable est fausse :

If Feature.IsActive("Fillet1") = false Then . . .
If Not Feature.IsActive("Fillet1") Then . . .

Ces exemples montrent le résultat d'une fonction. Autres exemples : utiliser un nom de paramètre en tant que variable booléenne ou une variable locale pour contenir une valeur booléenne.

Structure de cas dans les instructions conditionnelles dans iLogic

Une structure de cas vous permet de choisir plus de deux possibilités :

(1) Cas de changement du code (2) Cas “1” (3) Cas “2” (4) Cas “3” (5) Cas Else (6) Que faire en cas de changement du code= ”1” (7) Que faire en cas de changement du code= ”2” (8) Que faire en cas de changement du code= ”3” (9) Que faire en cas de changement du code différent de "1", "2" ou "3".

La structure de cas peut être appliquée à l'aide d'une structure If de bloc étendue ou de la structure d'instruction Select Case.

Instruction If de bloc étendue (If-Then-ElseIf) dans iLogic

L'instruction If de bloc étendue utilise une ou plusieurs clauses ElseIf qui sont imbriquées entre la première clause If et la dernière clause Else. Le mot-clé ElseIf correspond à un mot.

Par exemple :

If material = "Steel" Then
density = 0.284
ElseIf material = "Copper" Then
density = 0.323
ElseIf material = "Aluminum" Then
density = 0.098
End If

Dans ce format, le programme exécute les instructions associées à la première expression conditionnelle vraie qu'il trouve. Ensuite, le programme prend fin à l'instruction suivant l'instruction End If. Utiliser la dernière instruction Else pour éviter les erreurs qui se produisent lors de conditions inattendues qui ne correspondent pas aux conditions précédentes If ou ElseIf.

L'utilisation de ElseIf élimine le besoin de coder plusieurs instructions End If dans une structure If imbriquée. A titre de comparaison, l'exemple précédent peut également être écrit comme suit :

If material = "Steel" Then
density = 0.284
Else
If material = "Copper" Then
density = 0.323
Else
If material = "Aluminum" Then
density = 0.098
End If
End If
End If

Instruction Select Case dans iLogic

L'instruction Select Case peut être très intéressante avec plusieurs options.

Par exemple :

Select Case material
Case “Steel”
density =0.284
Case “ Copper”
density = 0.323
Case “Aluminum”
density = 0.098
Case Else
density = 0
MessageBox.Show("not a valid material" , "Warning")
End Select

Dans ce format, l'instruction Select Case spécifie une expression à tester. Chaque clause Case suivante spécifie une ou plusieurs expressions à comparer à l'expression test. Les actions de la première clause Case contenant une expression qui correspond à l'expression test sont alors exécutées. Le contrôle du programme passe ensuite à l'instruction suivant l'instruction End Select. La dernière clause Case Else empêche les erreurs qui se produisent lorsqu'une valeur inattendue de l'expression test ne correspond pas à la liste des expressions d'aucune clause Case précédente.

L'expression test qui suit la clause Select Case peut être une expression plus complexe, par exemple :

Select Case radius +1
Select Case  MinOfMany(x,y,z)

La liste des expressions de la clause Case peut suivre l'un de ces formats :

Format Exemples
<expression> [, expression...] Case 1, 10, 100

Case "Y", "y"

<expression> To <expression> Case 1 To 9

Case "A" To "C"

Is <expression à opérateur relationnel> Case Is >= 21
(combinaison des exemples précédents) Case Is <= 5, 20 To 29, 43

Par exemple :

Select Case width
Case 1,2,3,4,5
MessageBox.Show("Small Plate", "Size")
Case 6 to 15
MessageBox.Show("Medium Plate", "Size") 
Case Is > 15
MessageBox.Show("Large Plate", "Size")
End Select

L'instruction Select Case ne requiert pas d'association avec une variable ou expression particulière. Elle peut être utilisée pour évaluer tout nombre de conditions, en utilisant le format suivant :

Select Case True
Case length >= 10
width = length -1
thickness = length/5
Case length < 10
width = length - .75
thickness = length/6
End Select