$ CaseStatement = Select Case expression case { case}
[ELSE StatementSequence] END SELECT ";"
$ Case = [CASE CaseLabelList ":" StatementSequence]
$ CaseLabelList = CaseLabels {"," CaseLabels}
$ CaseLabels = ConstExpression [ TO ConstExpression]
Оператор 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 := 5; c := 0;
Select Case a
Case 1: c := c - 100;
Case 2: c := c - 100;
Case 3: c := c - 100;
Case 4: c := c - 100;
Case 5: c := c + 1;
Case 6: c := c - 100;
Case 7: c := c - 100;
Case 8: c := c - 100;
Case 9: c := c - 100;
Else c := 0;
End Select;
Select Case a
Case 1, 2, 3: c := c - 100;
Case 4, 5, 6: c := c + 1;
Case 7, 8, 9: c := c - 100;
Else c := 0;
End Select;
Select Case a
Case 1 To 3: c := c - 100;
Case 4 To 6: c := c + 1;
Case 7 To 9: c := c - 100;
Else c := 0;
End Select;
End Sub SelectCaseSample;
См. также: