Условные операторы в iLogic

Для создания правил iLogic используется язык программирования Visual Basic (VB.NET). Благодаря условным операторам (например, оператор If-Then-Else) правила могут выполнять действия на основе определенных критериев.

Оператор If-Then-Else в iLogic

Если использовать оператор 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 в iLogic

В операторе If-Then-Else действие выполняется вне зависимости от того, принимает ли условие истинное или ложное значение. Однако иногда действие или набор действий выполняются, только·если условие принимает истинное значение, а если условие ложно, то действие не выполняется.

(1) Условие (2) Истина (3) Оператор, исполняемый при выполнении условия (4) Ложь

Можно опустить часть Else структуры If блока. Например:

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

Нулевые или пустые наборы действий в iLogic

В блочной форме оператора 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 повышает его удобочитаемость, можно также записать оператор 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 . . .

В этих примерах показан результат выполнения функции. Кроме того, в качестве примера можно привести использование имени параметра в качестве логической переменной или присвоение локальной переменной логического значения.

Структура выбора в условных выражениях в iLogic

Структура выбора позволяет выбрать один из нескольких вариантов:

(1) Выбор кода переключения (2) Выбор "1" (3) Выбор "2" (4) Выбор "3" (5) Выбор Else (6) Действия для кода переключения ="1" (7) Действия для кода переключения ="2" (8) Действия для кода переключения ="3" (9) Действия, если код переключения не равен "1", "2" или "3"

Структуру выбора можно реализовать с помощью расширенной блоковой структуры If или структуры оператора Select Case.

Расширенный блоковый оператор If (If-Then-ElseIf) в iLogic

В расширенном блоковом операторе 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 в iLogic

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