您可以使用 Visual Basic (VB.NET) 程式語言建立 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,將執行 Then 和 Else 關鍵字之間的陳述式,而略過 Else 和 End If 關鍵字之間的陳述式。如果條件表示式為 false,則將執行 Else 和 End If 關鍵字之間的陳述式,而略過 Then 和 Else 關鍵字之間的陳述式。在任何情況下,程式控制都會繼續執行 End If 陳述式之後的陳述式。
在 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
在區塊形式的 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 陳述式寫為單行形式。在這種格式中,不使用 End If 陳述式。
例如:
If length < 20 Then MessageBox.Show("Length is Too Short", "Title") If mass < 1000 Then length =20 Else length =40
布林變數 (其值可以為 True 或 False) 可以在任何可以使用關係表示式的地方使用。
例如,以下兩個陳述式是等同的:
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 . . .
這些範例展示函數的結果。其他範例包括使用參數名稱做為布林變數,或使用本端變數包含布林值。
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 結構。
延伸區塊 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 陳述式之後的陳述式執行。當遇到與之前的 If 或 ElseIf 條件不相符的非預期條件時,執行最後一個 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
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