Условные операторы позволяют выполнять только часть кода в зависимости от каких-либо условий. В Fore имеются следующие условные операторы:
Условный оператор ?: возвращает одно из двух значений в зависимости от значения передаваемого логического выражения.
Если выражение возвращает значение True, то вычисляется и становится результатом выражение, следующее за символом «?». Если выражение возвращает значение False, то вычисляется и становится результатом выражение, следующее за символом «:». В любом случае возвращается только одно из двух выражений.
Sub Main;
Var
i, j: Double;
Begin
i := Math.Rand;
j := Math.Rand;
Debug.WriteLine(i > j ? "i>j" : "i<j");
End Sub Main;
При выполнении примера будут сгенерированы два случайных числа. Результат сравнения чисел будет выведен в консоль среды разработки.
Оператор If обеспечивает условное выполнение операторов в зависимости от заданных логических выражений. Блок операторов начинается с ключевых слов If...Then, между которыми указывается проверяемое выражение. Далее могут идти несколько необязательных блоков Elseif...Then, содержащих другие проверяемые выражения. Если найдется выражение, значение которого будет истинно (True), то выполняется соответствующая последовательность операторов. После всех блоков можно указать блок Else, содержащий операторы, которые будут выполнены, если ни одно из выражений не вернет значение True. После выполнения какой-либо группы операторов управление передается оператору, следующему за ключевыми словами End If.
Sub IfSample;
Var
a, b: Integer;
c: Double;
Begin
//...
//Получение значений a, b, c
//...
If (a > b) And (b > c) Then
c := a - b;
Elseif (a < b) And (b < c) Then
c := b - a;
Else
c := (a + b) / 2
End If;
//...
End Sub IfSample;
Оператор Select Case обеспечивает выбор и выполнение последовательности операторов в соответствии со значением выражения. После ключевых слов Select Case указывается выражение, значение которого будет проверяться. В блоках Case указываются проверяемые значения выражения. В одном блоке Case может быть указано:
одно проверяемое значение;
несколько значений, перечисленных через запятую;
диапазон значений, указанный с использованием ключевого слова To.
После указания проверяемых значений через двоеточие указывается блок операторов, выполняемых для данного блока Case.
Если значение выражения не соответствует ни одной из констант, определённых в блоках Case, то выполняется последовательность операторов из блока Else, если таковой имеется. Проверяемое выражение и значения, указанные в блоках Case, должны быть одного типа. Каждое из проверяемых значений должно использоваться только в одном блоке Case. Диапазоны значений не должны пересекаться. Допустимыми типами выражения и констант являются: Integer, Decimal, Double, Char, String, Boolean.
Sub SelectCaseSample;
Var
a, c: Integer;
Begin
//...
//Получение значений a, b, c
//...
Select Case a
Case 1: c := c + 5;
Case 2: c := c + 4;
Case 3: c := c + 3;
Case 4: c := c + 2;
Case 5: c := c + 1;
Case 6: c := c - 2;
Case 7: c := c - 3;
Case 8: c := c - 4;
Case 9: c := c - 5;
Else c := 0;
End Select;
Select Case a
Case 1, 2, 3: c := c + 10;
Case 4, 5, 6: c := c + 1;
Case 7, 8, 9: c := c - 10;
Else c := 0;
End Select;
Select Case a
Case 1 To 3: c := c + 10;
Case 4 To 6: c := c + 1;
Case 7 To 9: c := c - 10;
Else c := 0;
End Select;
//...
End Sub SelectCaseSample;
См. также: