如果指定 criterion,则每个后续 when 子句(如果有的话)都必须包含一个或多个 matchExpression 实例。如果未指定 criterion,则每个后续 when 子句(如果有的话)都必须包含 logical expression。
如果希望 when 子句在被调用时不起任何作用,则编写不带 EGL 语句的该子句。
case 语句可以具有任何数目的 when 子句。
matchExpression 值的基本类型必须与条件值的基本类型相兼容。有关兼容性的详细信息,请参阅逻辑表达式。
在运行 when 或 otherwise 子句中的语句之后,控制权将传递给紧跟在 case 语句末尾后面的 EGL 语句。在任何情况下都不会将控制权传递给下一个 when 子句。如果未调用任何 when 子句,并且未使用任何缺省子句,则还将控制权传递给紧跟在 case 语句后面的下一个语句,而不会出现任何错误状态。
case (myRecord.requestID) when (1) myFirstFunction(); when (2, 3, 4) try call myProgram; onException myCallFunction(12); end otherwise myDefaultFunction(); end
如果单个子句包含多个 matchExpression 实例(在上一个示例中为 2、3 和 4 ),则那些实例的求值是从左至右进行的,并且一旦找到一个与条件值相对应的 matchExpression,求值就会停止。
相关任务
EGL 语句和命令的语法图
相关参考
EGL 语句
逻辑表达式
eventKey
systemType