iLogic 中的條件陳述式

您可以使用 Visual Basic (VB.NET) 程式語言建立 iLogic 規則。條件陳述式 (如 If-Then-Else) 允許規則根據特定準則執行動作。

iLogic 中的 If-Then-Else 陳述式

If-Then-Else 陳述式中,如果條件為 true,執行一個動作集,如果條件為 false,則執行另一個動作集。

(1) 條件 (2) True (3) False (4) 如果條件為 True,執行以下陳述式 (5) 如果條件為 False,執行以下陳述式

true、false陳述式執行後,程式控制將繼續執行下一個陳述式。

在 iLogic 中,您可以使用區塊或多行形式實施 If-Then-Else 結構。

例如:

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

如果條件表示式為 true,將執行 ThenElse 關鍵字之間的陳述式,而略過 ElseEnd If 關鍵字之間的陳述式。如果條件表示式為 false,則將執行 ElseEnd If 關鍵字之間的陳述式,而略過 ThenElse 關鍵字之間的陳述式。在任何情況下,程式控制都會繼續執行 End If 陳述式之後的陳述式。

iLogic 中的 If-Then 陳述式

If-Then-Else 陳述式中,不論條件為 true 還是為 false,均會執行動作。但是,在某些情況下,只有當條件為 true 時才執行一個動作或動作集,而當條件為 false 時,則不執行任何動作:

(1) 條件 (2) True (3) 如果條件為 True,執行以下陳述式 (4) False

您可以忽略區塊 If 結構的 Else 部分。例如:

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

iLogic 中的空動作集

在區塊形式的 If 陳述式中,您也可以使用動作集。例如,您可以指定「如果條件為 true,不執行任何動作,否則執行某些動作」,如以下區塊所示:

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

使用空動作集時,可以在 true 陳述式通常會執行的位置添加註釋,以改善可讀性:

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

IF 陳述式做為單行陳述式使用

雖然區塊形式的 If 陳述式可以增強可讀性,但是您也可以將 If 陳述式寫為單行形式。在這種格式中,不使用 End If 陳述式。

例如:

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

在條件表示式中使用布林變數

布林變數 (其值可以為 TrueFalse) 可以在任何可以使用關係表示式的地方使用。

例如,以下兩個陳述式是等同的:

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

在第二個陳述式中,True 值是暗含的。

同樣,以下兩個陳述式均可用來測試布林變數是否為 false:

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

這些範例展示函數的結果。其他範例包括使用參數名稱做為布林變數,或使用本端變數包含布林值。

iLogic 中的條件陳述式 Case 結構

Case 結構讓您可以在兩個以上的替用項目之間進行選擇。

(1) Case 轉換碼 (2) Case “1” (3) Case “2” (4) Case “3” (5) Case Else (6) 轉換碼為「1」時執行的動作 (7) 轉換碼為「2」時執行的動作 (8) 轉換碼為「3」時執行的動作 (9) 轉換碼為「1」、「2」或「3」時執行的動作

可以使用延伸區塊 If 結構或 Select Case 陳述式結構實施 Case 結構。

iLogic 中的延伸區塊 If 陳述式 (If-Then-ElseIf)

延伸區塊 If 陳述式使用一個或多個嵌套在第一個 If 子句和最後一個 Else 子句之間的 ElseIf 子句。關鍵字 ElseIf 是一個詞。

例如:

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

在這種格式中,程式執行與發現的第一個為 true 的條件表示式相關聯的陳述式。然後,程式跳轉到 End If 陳述式之後的陳述式執行。當遇到與之前的 IfElseIf 條件不相符的非預期條件時,執行最後一個 Else 陳述式,以免發生錯誤。

使用 ElseIf 便無需在巢狀 If 結構中編碼多個 End If 陳述式。做為比較,上一個範例也可以編寫為:

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

iLogic 中的 Select Case 陳述式

Select Case 是具有多個選項的強大陳述式。

例如:

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

在這種格式中,Select Case 陳述式指定要測試的表示式。每個後續 Case 子句指定一個或多個要與測試表示式進行比較的表示式。將執行第一個包含與測試表示式相符之表示式的 Case 子句的關聯動作。然後,程式控制將跳轉到 End Select 陳述式之後的陳述式執行。當測試表示式的非預期值與之前的任何一個 Case 子句中的表示式清單不相符時,執行最後一個 Case Else 子句,以免發生錯誤。

Select Case 之後的測試表示式可以是更複雜的表示式,例如:

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

Case 子句中的表示式清單可以遵循以下任意一種格式:

格式 範例
<表示式>[,表示式,...] Case 1, 10, 100

Case "Y", "y"

<表示式> To <表示式> Case 1 To 9

Case "A" To "C"

Is<關係運算子表示式> Case Is >= 21
(上述各項的任意組合) Case Is <= 5, 20 To 29, 43

例如:

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

Select Case 陳述式不需要與某個特定變數或表示式關聯。可以使用該陳述式演算任意數目的條件,需使用以下格式:

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