跳到主要内容

ST语句:CASE

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

功能描述

CASE语句由一个对基本数据类型(选择符)变量求值的表达式和一个语句列表组成。每组都可应用一个或多个直接数据值、枚举值或子范围值来标记。这些标记的数据类型应该与选择符变量的数据类型匹配,选择符号变量的值应该可以和标号进行比较运算。

对于CASE的语句列表,其范围之一包含选择符的计算值,即执行改组逻辑,如果选择符的计算值不满足CASE语句列表的任何一个条件时,将执行ELSE关键字的语句序列。如果没有ELSE分支则不执行任何逻辑。

ST 用法

CASE <条件变量> OF
<标签-1> :
<指令-1>
<标签-2> :
<指令-2>
<标签-3, 标签-4, 标签-5> :
<指令-3>
<标签-6 .. 标签-10> :
<指令-4>
<标签-n> :
<指令-n>
ELSE <ELSE-指令>
END_CASE

<条件变量>

条件的整型变量

例子: iCondition

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

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

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

<标签-n>

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

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

例子: 1, 5, c_ONE, c_TWO

如果该值等于 <条件变量>,则运行下面的语句。

如果该值不等于 <条件变量>,则忽略相应的语句,系统跳转到下一个标签。

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

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

例子: 1, 5

如果其中一个标签符合 <条件变量>,然后执行下面的命令。

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

带下限和上限标签的范围

10..20

如果<条件变量>取以下范围内的值 标签-n1标签-n2,然后执行下面的命令。

ELSE

可选,最多一次

默认跳转目标,如果之前的所有标签都不匹配条件,则跳转到该目标。

<指令-n>

<ELSE-指令>

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

语句始终以分号 (;)。

示例

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