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 Aktionen ausgeführt, wenn eine Bedingung wahr ist. Wenn die Bedingung falsch ist, wird ein anderer Satz von Aktionen 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 eine Block- oder mehrzeilige Form verwenden.

Beispiel:

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

Wenn der bedingte Ausdruck true 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 ist, 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 wird eine Aktion unabhängig davon ausgeführt, ob die Bedingung true oder false ist. Manchmal aber sollen ein oder mehrere Aktionen nur dann ausgeführt werden, wenn eine Bedingung true ist. Wenn die Bedingung false ist, soll jedoch keine Aktion ausgeführt werden.

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

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

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

Sie können auch null- oder empty-Sätze von Aktionen in der Blockform der 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 Aktionen verwenden, können Sie die Lesbarkeit verbessern, indem Sie einen Kommentar anstelle 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 Blockform der If-Anweisung die Lesbarkeit verbessert, lässt sich die If-Anweisung auch in nur eine Zeile schreiben. In diesem Format wird die End If-Anweisung nicht 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 bedingten Ausdrücken

Eine boolesche Variable kann den Wert True oder False aufweisen 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-Anweisungsstruktur implementiert werden.

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

Die erweiterte If-Blockanweisung verwendet eine oder mehrere ElseIf-Klauseln, die zwischen der ersten If-Klausel und der letzten Else-Klausel verschachtelt 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 letzte Else-Anweisung, um Fehler zu erfassen, die bei unerwarteten Bedingungen auftreten, die nicht mit den vorherigen If- oder ElseIf-Bedingungen übereinstimmen.

Durch die Verwendung von ElseIf entfällt die Notwendigkeit, mehrere End If-Anweisungen in einer verschachtelten If-Struktur zu codieren. 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 wirkungsvolle 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. Jede nachfolgende Case-Klausel gibt einen oder mehrere Ausdrücke an, die mit dem Testausdruck verglichen werden sollen. Es werden die Aktionen der ersten Case-Klausel ausgeführt, die mit dem Testausdruck übereinstimmt. Die Programmsteuerung wird dann mit der Anweisung fortgesetzt, die der End Select-Anweisung folgt. Mit der letzten Case Else-Klausel werden die Fehler erfasst, die auftreten, wenn ein unerwarteter Wert des Testausdrucks nicht mit den Ausdrücken aus den vorherigen Case-Klauseln übereinstimmt.

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

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

Die Ausdrücke in einer Case-Klausel können eines der folgenden Formate aufweisen:

FormatBeispiele
<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