Podmíněné příkazy v modulu iLogic

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í.

Příkaz If-Then-Else v modulu iLogic

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.

Příkaz If-Then v modulu iLogic

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

Sady s hodnotou Null a prázdné sady akcí v modulu iLogic

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

Použití příkazu If jako jednořádkového příkazu

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

Použití booleovské proměnné v podmíněných příkazech

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.

Syntaxe klíčového slova Case v podmíněných příkazech v modulu iLogic

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.

Rozšířený blok příkazu If (If-Then-ElseIf) v modulu iLogic

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 v modulu iLogic

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