Для создания правил 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
Если условное выражение принимает истинное значение, выполняются операторы между ключевыми словами Then и Else. Операторы между ключевыми словами Else и End If пропускаются. Если условное выражение принимает ложное значение, выполняются операторы между ключевыми словами Else и End If. Операторы между ключевыми словами Then и Else пропускаются. В любом случае далее программа переходит к выполнению оператора, стоящего после оператора End If.
В операторе If-Then-Else действие выполняется вне зависимости от того, принимает ли условие истинное или ложное значение. Однако иногда действие или набор действий выполняются, только·если условие принимает истинное значение, а если условие ложно, то действие не выполняется.
(1) Условие (2) Истина (3) Оператор, исполняемый при выполнении условия (4) Ложь
Можно опустить часть Else структуры If блока. Например:
If size = “small” Then length = 6.0 End If
В блочной форме оператора If можно также использовать нулевые или пустые наборы действий. Например, можно заявить: "Если условие выполняется, то делать ничего не надо, а если оно не выполняется, надо сделать нечто", что реализовано в следующем блоке:
If length > 20 Then Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title") End If
При использовании пустого набора действий можно повысить удобочитаемость программы за счет включения комментария в том месте, где обычно стоят истинные операторы.
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
Логическую переменную, принимающую истинное или ложное значение, можно использовать везде, где используется выражение отношения.
Например, следующие два оператора эквивалентны:
If Feature.IsActive("Fillet1") = true Then . . . If Feature.IsActive("Fillet1") Then . . .
Во втором операторе подразумевается истинное значение.
Аналогичным образом можно использовать любой из следующих двух операторов, чтобы проверить, принимает ли логическая переменная значение "ложь":
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 используется один или несколько операторов ElseIf, расположенных между первым оператором If и последним оператором Else. Ключевое слово ElseIf пишется без пробела.
Например:
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 исключает необходимость кодирования нескольких операторов End If во вложенной структуре 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 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 не требуется устанавливать связь с одной конкретной переменной или выражением. Его можно использовать для оценки любого числа условий с помощью следующего формата:
Select Case True Case length >= 10 width = length -1 thickness = length/5 Case length < 10 width = length - .75 thickness = length/6 End Select