Bedingungsanweisungen in iLogic

iLogic bietet Bedingungsanweisungen, die Sie im Dialogfeld Regel bearbeiten verwenden können.

Fügen Sie die Anweisungen in Regeln (kleine Visual Basic-Programme) ein, die Sie für Ihr Modell definieren. Mithilfe von Bedingungsanweisungen wie If-Then-Else können Regeln zum Durchführen von Aktionen anhand bestimmter Kriterien eingesetzt werden.

If-Then-Else-Anweisung in iLogic

Bei einer If-Then-Else-Anweisung wird ein Satz von Befehlen ausgeführt, wenn eine Bedingung wahr ist. Wenn die Bedingung falsch ist, wird ein anderer Satz von Befehlen ausgeführt.

Nachdem die Wahr- oder Falsch-Anweisungen ausgeführt wurden, wird die Programmsteuerung der nächsten Anweisung aufgenommen.

In iLogic können Sie zur Implementierung der If-Then-Else-Struktur ein Blockstruktur oder eine mehrzeilige Struktur verwenden.

Beispiel:

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

Wenn der bedingte Ausdruck wahr ist, werden die Anweisungen zwischen den Schlüsselwörtern Then und Else ausgeführt. Die Anweisungen zwischen den Schlüsselwörtern Else und End If werden umgangen. Wenn der bedingte Ausdruck false lautet, werden die Anweisungen zwischen den Schlüsselwörtern Else und End If ausgeführt. Die Anweisungen zwischen den Schlüsselwörtern Then und Else werden umgangen. In jedem Fall wird die Programmsteuerung mit der Anweisung nach der End If-Anweisung fortgesetzt.

If-Then-Anweisung in iLogic

Bei einer If-Then-Else-Anweisung werden Befehle ausgeführt, unabhängig davon, ob die Bedingung true oder false ist. Manchmal aber sollen ein oder mehrere Befehle nur dann ausgeführt werden, wenn eine Bedingung true ist. Wenn die Bedingung false ist, soll jedoch kein Befehl ausgeführt werden.

Sie können den Else-Teil aus der If-Struktur auslassen. Beispiel:

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

Nullsätze oder leere Sätze von Befehlen in iLogic

Sie können auch Nullsätze oder leere Sätze von Befehlen in einer Blockstruktur einer If-Anweisung verwenden. Sie können beispielsweise festlegen, dass eine Aktion nur unter bestimmten Bedingungen ausgeführt wird. Dies wird in folgendem Block veranschaulicht:

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

Wenn Sie einen leeren Satz von Befehlen verwenden, können Sie die Lesbarkeit verbessern, indem Sie einen Kommentar an Stelle der true-Anweisungen einfügen:

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

Verwenden einer If-Anweisung als einzeilige Anweisung

Obwohl die Blockstruktur der If-Anweisung die Lesbarkeit verbessert, lässt sich die If-Anweisung auch in nur eine Zeile schreiben. Dieses Format wird nicht für die End If-Anweisung verwendet.

Beispiele:

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

Verwenden von Booleschen Variablen in Bedingungsanweisungen

Eine Boolesche Variable kann den Wert True oder False annehmen und in Verbindung mit einem beliebigen relationalen Ausdruck verwendet werden.

Die folgenden zwei Anweisungen sind z. B. identisch:

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

Der True-Wert ist in der zweiten Anweisung enthalten.

Analog können die folgenden zwei Anweisungen gegeneinander ausgetauscht werden, um zu testen, ob die Boolesche Variable falsch ist:

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

Diese Beispiele sind das Ergebnis einer Funktion. Weitere Beispiele beinhalten die Verwendung eines Parameternamens als Boolesche Variable, oder die Verwendung einer lokalen Variable, die einen Booleschen Wert annimmt.

Fallunterscheidung in Bedingungsanweisungen in iLogic

Bei einer Fallunterscheidung kann zwischen mehr als zwei Möglichkeiten gewählt werden.

Eine Fallunterscheidung kann durch Verwendung einer erweiterten If-Blockstruktur oder einer Select Case-Anweisung implementiert werden.

Erweiterte If-Blockanweisung (If-Then-ElseIf) in iLogic

Die erweiterte If-Blockanweisung enthält einen oder mehrere ElseIf-Abschnitte, die verschachtelt zwischen der ersten If-Anweisung und der letzten Else-Anweisung integriert sind. Das Schlüsselwort ElseIf besteht aus einem Wort.

Beispiel:

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

In diesem Format führt das Programm die Anweisungen für den ersten bedingten Ausdruck aus, der zutrifft. Das Programm wird dann mit der Anweisung beendet, die nach der End If-Anweisung folgt. Verwenden Sie die endgültige Else-Anweisung, um Fehler zu erfassen, die bei unerwarteten Bedingungen auftreten, die nicht mit den vorherigen If- oder ElseIf-Bedingungen übereinstimmen.

Mit ElseIf entfällt die Kodierung mehrerer End If-Anweisungen in einer verschachtelten If-Struktur. Zum Vergleich: Das vorherige Beispiel kann auch wie folgt geschrieben werden:

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

Select Case-Anweisung in iLogic

Select Case ist eine wirksame Anweisung mit mehreren Optionen.

Beispiel:

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

In diesem Format gibt die Select Case-Anweisung einen zu testenden Ausdruck an. Jeder nachfolgende Case-Abschnitt gibt einen oder mehrere Ausdrücke an, die mit dem Testausdruck verglichen werden sollen. Es werden die Befehle ausgeführt, die mit dem ersten Case-Abschnitt verbunden sind, dessen Ausdruck mit dem Testausdruck übereinstimmt. Die Programmsteuerung wird dann mit der Anweisung fortgesetzt, die der End Select-Anweisung folgt. Im endgültigen Case Else-Abschnitt werden die Fehler erfasst, die auftreten, wenn ein unerwarteter Wert des Testausdrucks nicht mit den Ausdrücken aus den vorherigen Case-Abschnitten übereinstimmt.

Der Testausdruck nach Select Case kann ein komplexerer Ausdruck sein, z. B.:

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

Die Ausdrücke in einem Case-Abschnitt können eines der folgenden Formate annehmen:

Format Beispiele
<Ausdruck> [, Ausdruck...] Case 1, 10, 100

Case "Y", "y"

<Ausdruck> To <Ausdruck> Case 1 To 9

Case "A" To "C"

Is <relationaler Operatorausdruck> Case Is >= 21
(Kombination aus den vorherigen) Case Is <= 5, 20 To 29, 43

Beispiel:

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

Die Select Case-Anweisung muss nicht mit einer bestimmten Variable oder einem Ausdruck verbunden sein. Sie kann mithilfe des folgenden Formats zur Auswertung einer beliebigen Anzahl von Bedingungen verwendet werden:

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