Skip to main content

ST 声明:CASE

CASE 语句是一种条件控制结构,它使语句或语句的一部分仅在特定条件下执行。通过比较条件和标签来确定执行的部分。

句法:

CASE <condition> OF
    <label-1> : 
        <instruction-1>
    <label-2> : 
        <instruction-2>
    <label-3, label-4, label-5> : 
        <instruction-3>
    <label-6 .. labe-10> : 
        <instruction-4>
    <label-n> : 
        <instruction-n>
    ELSE <ELSE-instruction>
END_CASE

状况

条件的整数变量

例子: iCondition

变量的值与构造中声明的标签进行比较。

CASE 语句中可以使用任意数量的标签(最少:2)。否则,可以使用 IF-THEN-ELSE 结构更清楚地显示该结构。

所有标签必须具有不同的值。

标签-n

与条件具有相同数据类型的常量、文字或常量表达式

充当 CASE 构造中的标签(跳转目标)。

例子: 1, 5, c_ONE, c_TWO

如果该值等于 状况,则运行下面的语句。

如果该值不等于 状况,则忽略相应的语句,系统跳转到下一个标签。

<标签-n >, < 标签-n1>

带有多个标签的逗号分隔列表,用作跳转目标

例子: 1, 5

如果其中一个标签符合条件 状况,然后运行下面的部分。

<标签-n1>..<标签-n2>

带下限和上限标签的范围

10..20

如果条件 状况 取以下范围内的值 标签-n1标签-n2,然后运行下面的部分。

ELSE

可选,最多一次

默认跳转目标,如果所有先前的标签都跳转到 不要 符合条件。

指令n

ELSE指令

语句,或由多个语句组成的语句段

语句始终以分号 (;)。

72. 例子
CASE iCondition OF
    1, 5, c_ONE, C_TWO: 
        bVar1 := TRUE;
        bVar3 := FALSE;
    2: 
        bVar2 := FALSE;
        bVar3 := TRUE;
    10..20: 
        bVar1 := TRUE;
        bVar3 := TRUE;
    ELSE
        bVar1 := NOT bVar1;
        bVar2 := bVar1 OR bVar2;
END_CASE