Pro vytváření pravidel modulu iLogic se používá programovací jazyk Visual Basic (VB.NET). Podmíněné příkazy, například příkaz If-Then-Else, umožňují, aby pravidla prováděla akce na základě určitých kritérií.
V příkazu If-Then-Else se jedna sada akcí provede, pokud je podmínka pravdivá, a druhá sada akcí se provede, pokud není pravdivá.
(1) Podmínka (2) Pravdivá (3) Nepravdivá (4) Jestliže je podmínka pravdivá, proveďte tyto příkazy (5) Jestliže je podmínka nepravdivá, proveďte tyto příkazy
Po provedení příkazů pro pravdivou nebo nepravdivou podmínku pokračuje programové řízení dalším příkazem.
V modulu iLogic lze strukturu příkazu If-Then-Else implementovat v blokové neboli víceřádkové formě.
Například:
If size = “small” Then length = 6.0 Else length = 12 End If
Pokud je testovaný výraz pravdivý, provedou se příkazy mezi klíčovými slovy Then a Else. Příkazy mezi klíčovými slovy Else a End If jsou vynechány. Pokud je podmíněný výraz nepravdivý, provedou se příkazy mezi klíčovými slovy Else a End If. Příkazy mezi klíčovými slovy Then a Else jsou vynechány. V obou případech pak provádění programu pokračuje příkazem, který následuje za příkazem End If.
V příkazu If-Then-Else je vždy provedena nějaká akce – bez ohledu na to, zda je podmínka pravdivá, nebo nepravdivá. Někdy však provedete akci nebo sadu akcí, pouze pokud je podmínka pravdivá, a pokud je nepravdivá, neprovedete žádnou akci:
(1) Podmínka (2) Pravdivá (3) Jestliže je podmínka pravdivá, proveďte tyto příkazy (4) Nepravdivá
Sekci Else bloku příkazu If můžete vynechat. Například:
If size = “small” Then length = 6.0 End If
V blokové formě příkazu If také můžete použít nedefinované nebo prázdné sady příkazů. Například lze stanovit „jestliže je podmínka pravdivá, neprovést nic – jinak něco provést” jako v následujícím bloku:
If length > 20 Then Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title") End If
Při použití prázdné sady akcí zlepšete čitelnost příkazu doplněním poznámky na místo sady příkazů, které se provádějí, pokud je podmínka pravdivá:
If length > 20 Then’do nothing
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in ", "Title")
End If
Ačkoliv bloková forma příkazu If zlepšuje čitelnost, příkaz If lze zapsat i na jeden řádek. V tomto formátu se nepoužívá klauzule End If.
Příklady obsahují:
If length < 20 Then MessageBox.Show("Length is Too Short", "Title") If mass < 1000 Then length =20 Else length =40
Na místě relačního výrazu lze kdekoliv v příkazu použít Booleovskou proměnnou, která může nabývat hodnot True (pravda) či False (nepravda).
Například následující dva příkazy jsou stejné:
If Feature.IsActive("Fillet1") = true Then . . . If Feature.IsActive("Fillet1") Then . . .
V druhém příkazu je podmiňující hodnota True (pravda) vyjádřena nepřímo.
Podobně lze následující dva příkazy zaměnitelně použít ke kontrole, zda je booleovská proměnná nepravdivá:
If Feature.IsActive("Fillet1") = false Then . . . If Not Feature.IsActive("Fillet1") Then . . .
Tyto příklady uvádějí výsledek funkce. V ostatních příkladech je použit název parametru jako booleovské proměnné nebo lokální proměnné pro uložení booleovské hodnoty.
Struktura případu umožňuje volbu mezi více než dvěma alternativami:
(1) Případ kódu posuvu (2) Případ „1“ (3) Případ „2 (4) Případ „3“ (5) Případ „Jinak“ (6) Co dělat, když kód posuvu=„1“ (7) Co dělat, když kód posuvu=„2“ (8) Co dělat, když kód posuvu=„3“ (9) Co dělat, když kód posuvu není „1“, „2“ nebo „3“
Strukturu více sad akcí pro různé podmínky lze implementovat pomocí rozšířeného bloku příkazu If nebo pomocí struktury příkazu Case.
Při použití rozšířeného bloku příkazu If se používá jedna nebo více klauzulí ElseIf, které jsou vnořeny mezi první klauzuli If a poslední klauzuli Else. Klíčové slovo ElseIf se zapisuje jako jediné slovo.
Například:
If material = "Steel" Then density = 0.284 ElseIf material = "Copper" Then density = 0.323 ElseIf material = "Aluminum" Then density = 0.098 End If
V tomto formátu program provádí příkazy spojené s prvním nalezeným pravdivým podmíněným výrazem. Po vyhodnocení a provedení příkazu provádění programu pokračuje příkazem, který následuje za příkazem End If. Poslední klauzuli Else použijte k zachycení chyb, ke kterým dochází při neočekávaných podmínkách, které nejsou ošetřeny předchozími podmínkami If nebo ElseIf.
Použití příkazu ElseIf eliminuje potřebu použití více klauzulí End If ve víceúrovňových strukturách příkazu If. Pro srovnání, předchozí příklad lze také zapsat jako:
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
Příkaz Select Case je velmi užitečný a nabízí několik možností.
Například:
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
V této formě příkaz Select Case určuje testovanou podmínku. Každá další klauzule Case určuje jeden nebo více výrazů za účelem srovnání s testovacím výrazem. Při vyhodnocování příkazu se provedou akce obsažené v první klauzuli Case, která obsahuje výraz odpovídající testovacímu výrazu. Provádění programu pak pokračuje prvním příkazem za klauzulí End Select. V sadě akcí poslední klauzule Case Else lze ošetřit chyby, ke kterým dojde, když neočekávaná hodnota testovacího výrazu neodpovídá seznamu výrazů v žádné z předchozích klauzulí Case.
Testovací výraz následující za příkazem Select Case může být i složitější, například:
Select Case radius +1 Select Case MinOfMany(x,y,z)
Seznam výrazů v klauzuli Case může mít kterýkoliv z následujících formátů:
Formát | Příklady |
---|---|
<výraz>[,výraz,...] |
Case 1, 10, 100
Case “Y”, “y” |
<výraz> k <výraz> |
Case 1 To 9
Case “A” To “C” |
Je<výraz relačního operátoru> | Case Is >= 21 |
(kombinace kterýchkoliv výše uvedených formátů) | Case Is <= 5, 20 To 29, 43 |
Například:
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
Příkaz Select Case nevyžaduje použití jedné konkrétní proměnné nebo výrazu. Může být používán k vyhodnocení jakéhokoliv počtu podmínek pomocí následujícího formátu:
Select Case True Case length >= 10 width = length -1 thickness = length/5 Case length < 10 width = length - .75 thickness = length/6 End Select