iLogic のルールを作成するには、Visual Basic (VB.NET)プログラム言語を使用します。If-Then-Else などの条件ステートメントによって、特定の基準に従ってアクションを実行できます。
If-Then-Else ステートメントでは、条件が真の場合、一連のアクションが実行され、条件が偽の場合、別の一連のアクションが実行されます。
(1) 条件 (2) 真 (3) 偽 (4) 条件が真の場合、このステートメントが実行されます (5) 条件が偽の場合、このステートメントが実行されます
真または偽のステートメントが実行された後、プログラムの制御が次のステートメントで再開されます。
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 の場合にのみ 1 つまたは一連のアクションが実行され、条件が false の場合にはアクションが実行されないこともあります。
(1) 条件 (2) 真 (3) 条件が真の場合、このステートメントが実行されます (4) 偽
If 構造の Else の部分は省略することができます。次の例を参照してください。
If size = “small” Then length = 6.0 End If
If ステートメントのブロック書式では、null または empty のアクションを使用することもできます。たとえば、次のブロックのように「条件が真の場合には何も実行せず、それ以外の場合には何らかの処理を実行する」ように記述できます。
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 ステートメントのブロック書式は判読が容易ですが、1 行で 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 の値を保持することができ、関係式を記述可能な任意の位置で使用できます。
たとえば、次の 2 つのステートメントは等価です。
If Feature.IsActive("Fillet1") = true Then . . . If Feature.IsActive("Fillet1") Then . . .
2 番目のステートメントは、True 値を暗示しています。
同様に、次の 2 つのステートメントは、ブール変数が偽であるかどうかを評価するために両方を使用することができます。
If Feature.IsActive("Fillet1") = false Then . . . If Not Feature.IsActive("Fillet1") Then . . .
これらの例では、関数の結果を示しました。また、パラメータ名をブール変数として使用しているものや、ローカル変数にブール値を格納しているものがありました。
ケース構造では、複数の候補からの選択が可能です。
(1) シフト コードのケース (2) ケース "1" (3) ケース "2" (4) ケース "3" (5) これら以外のケース(Else) (6) シフト コード = "1" の処理 (7) シフト コード = "2" の処理 (8) シフト コード = "3" の処理 (9) シフト コードが "1"、"2"、"3" 以外の場合の処理
ケース構造は、If 構造を拡張したブロックや Select Case ステートメント構造を使用して実装できます。
If ステートメントの拡張ブロックでは、1 つまたは複数の ElseIf 句を使用して、最初の If 句と最後の Else 句の間にネスト構造を作ります。ElseIf キーワードは 1 語です。
次の例を参照してください。
If material = "Steel" Then density = 0.284 ElseIf material = "Copper" Then density = 0.323 ElseIf material = "Aluminum" Then density = 0.098 End If
この形式では、プログラムが、最初に検出された真の条件式に関連付けられたステートメントを実行します。次に、End If ステートメントの後のステートメントに出ます。最後の Else ステートメントは、前の If や ElseIf の条件に一致しない条件が予期せず発生したときのエラーをトラップするために使用します。
ElseIf は、ネストされた If 構造で複数の End If ステートメントを記述する手間を省くために使用します。比較のために、前の例のもう 1 つの記述例を示します。
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 句では 1 つまたは複数の式を指定して、評価式と比較します。最初の Case 句は、評価式と照合する式を含み、実行するアクションに関連付けられています。プログラム制御は、次に End Select ステートメントの後のステートメントへ分岐します。最後の Case Else 句は、評価式の予期しない値が前のいずれの Case 句の式リストにも一致しないときに発生するエラーをトラップするために使用します。
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 ステートメントは、1 つの特定の変数または式と関連付ける必要がありません。次の形式で任意の数の条件を評価するために使用できます。
Select Case True Case length >= 10 width = length -1 thickness = length/5 Case length < 10 width = length - .75 thickness = length/6 End Select