Instrukcje warunkowe w iLogic — informacje

iLogic zawiera instrukcje warunkowe, których można użyć w oknie dialogowym Edycja reguły.

Użytkownik może umieścić instrukcje w regułach (niewielkich programach Visual Basic) definiowanych dla danego modelu. Instrukcje warunkowe, takie jak If-Then-Else, umożliwiają regułom działanie na podstawie ustalonych kryteriów.

Instrukcja If-Then-Else w iLogic

W instrukcji If-Then-Else wykonywany jest jeden zestaw czynności, jeśli warunek został spełniony (prawda), a inny, jeśli warunek nie został spełniony (fałsz).

Po wykonaniu instrukcji prawda/fałsz program przechodzi do kolejnej instrukcji.

Strukturę If-Then-Else można wdrożyć w iLogic w postaci bloku lub w formie wielowierszowej.

Na przykład:

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

Jeśli wyrażenie warunkowe jest prawdziwe, zostaną wykonane instrukcje pomiędzy słowami kluczowymi Then a Else. Instrukcje pomiędzy słowami kluczowymi Else a End If zostaną pominięte. Jeśli wyrażenie warunkowe to fałsz, wykonywane są instrukcje pomiędzy słowami kluczowymi Else a End If. Instrukcje pomiędzy słowami kluczowymi Then a Else są pomijane. W każdym przypadku program przechodzi następnie od instrukcji występującej po instrukcji End If.

Instrukcja If-Then w iLogic

W instrukcji If-Then-Else czynność jest wykonywana bez względu na to, czy warunek to prawda czy fałsz . Czasem jednak czynność lub zestaw czynności powinien zostać wykonany wyłącznie wtedy, kiedy warunek to prawda, jeśli natomiast warunek to fałsz, nie należy robić nic.

Część Else bloku If może zostać ominięta. Na przykład:

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

Zerowe lub puste zestawy czynności w iLogic

Można również wykorzystać zestawy czynności null lub empty w postaci bloku instrukcji If. Na przykład użytkownik może wydać instrukcję "jeśli warunek jest prawdziwy, nie rób nic - w przeciwnym wypadku wykonaj czynności", jak to pokazano poniżej:

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

Korzystając z pustego zbioru czynności, dobrze jest zwiększyć przejrzystość zapisu, dodając komentarz w miejscu, w którym normalnie znalazłyby się instrukcje prawda:

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

Używanie instrukcji If jako instrukcji jednowierszowej

Chociaż postać blokowa instrukcji If zwiększa jej przejrzystość, możliwe jest również zapisanie instrukcji If w postaci pojedynczego wiersza. W tym formacie instrukcja End If nie jest wykorzystywana.

Na przykład:

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

Używanie zmiennych logicznych w wyrażeniach warunkowych

Zmienna logiczna, czyli przyjmująca wartość Prawda lub Fałsz, może zostać użyta wszędzie tam, gdzie można też zastosować wyrażenie pokrewne.

Na przykład poniższe dwie instrukcje są jednoznaczne:

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

W drugiej instrukcji wartość Prawda jest domniemana.

Podobnie, poniższe dwie instrukcje mogą być stosowane zamiennie, by sprawdzić, czy wartość logiczna jest prawdziwa, czy fałszywa.

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

Te przykłady przedstawiają wynik funkcji. Inne mogą obejmować wykorzystanie nazwy parametru jako wartości logicznej lub przypisanie wartości logicznej do lokalnej zmiennej.

Struktura Case w instrukcjach warunkowych w iLogic

Struktura przypadkowa pozwala wybrać między więcej niż dwiema alternatywami.

Strukturę przypadku można wdrożyć przy użyciu struktury bloku rozszerzonego If lub struktury instrukcji Select Case.

Instrukcja If bloku rozszerzonego (If-Then-ElseIf) w iLogic

Instrukcja bloku rozszerzonego If wykorzystuje jedno lub więcej zdań składowych ElseIf umieszczonych pomiędzy pierwszym zdaniem składowym If a ostatnim zdaniem składowym Else. Słowo kluczowe ElseIf jest pojedynczym słowem.

Na przykład:

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

W tym formacie program wykonuje instrukcje powiązane z pierwszym znalezionym prawdziwym wyrażeniem. Później program przechodzi do instrukcji następujących po instrukcji End If. Końcową instrukcję Else należy wykorzystać do wychwycenia wszelkich błędów, które mogą wystąpić, gdy zaistnieją warunki nieodpowiadające wcześniejszym warunkom If lub ElseIf.

Użycie polecenia ElseIf eliminuje potrzebę powielania instrukcji EndIf w zagnieżdżonej strukturze If. Dla celów porównawczych powyższy przykład można również zapisać 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

Instrukcja Select Case w iLogic

Select Case to oferująca kilka opcji instrukcja o dużych możliwościach.

Na przykład:

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

W tym formacie instrukcja Select Case określa wyrażenie do przetestowania. Każde kolejne zdanie składowe Case określa jedno lub więcej wyrażeń, które zostaną porównane z wyrażeniem testowym. Pierwsze zdanie składowe Case zawierające wyrażenie, które odpowiada wyrażeniu testowemu, spowoduje wykonanie przypisanych mu czynności. Później program przechodzi do instrukcji następującej po instrukcji End Select. Końcowe zdanie składowe Case Else pozwala wychwycić błędy, które mogą wystąpić, gdy nieprzewidziana wartość wyrażenia testowego nie będzie odpowiadać liście wyrażeń w żadnym z poprzedzających zdań składowych Case.

Wyrażenie testowe następujące po Select Case może mieć bardziej złożoną postać, np.:

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

Lista wyrażeń w zdaniu składowym Case może zostać utworzona w dowolnym z poniższych formatów:

Format Przykłady:
<wyrażenie>[,wyrażenie,...] Case 1, 10, 100

Case „Y”, „y”

<wyrażenie> Do <wyrażenie> Case 1 To 9

Case „A” To „C”

Jest<wyrażenie operatora pokrewnego> Case Is >= 21
(połączenie dowolnych z wyżej wymienionych) Case Is <= 5, 20 To 29, 43

Na przykład:

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

Instrukcja Select Case nie wymaga przypisania do żadnej szczególnej zmiennej ani wyrażenia. Może posłużyć do oceny dowolnej ilości warunków, w następującej postaci:

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