7. 流程控制
7.1 概述
目前 WTCD 的传统流程控制只原生提供了 switch
。
7.2 switch
switch
语句语法如下:
switch <valueExpr> [
<matchList1> <matchExpr1>
<matchList2> <matchExpr2>
...
[defaultExpr]
]
举个例子:
declare number value = // ...
declare number result = switch value [
[ 1 5 10 ] 200
[ 3 7 ] 300
400
]
在上述例子中,如果 value
的值是 1 或 5 或 10,则 result
会变成 200。如果 value
的值是 3 或 7,则 result
会变成 300。否则 result
会变成 400。
在 WTCD 中,如果没有提供最后的 defaultExpr
,那么在如果没有匹配时就会报错。
此外,WTCD 的 switch 时没有 fall through 的。也就是说,上一个 case
执行完后不会进入下一个 case
,因此也没有必要使用 break
。
另外,每一个 matchList
都可以是一个表达式。上述 switch
语句还可以写成:
declare number value = // ...
declare list list1 = [ 1 5 10 ]
declare list list2 = [ 3 7 ]
declare number result = switch value [
list1 200
list2 300
400
]
7.3 if
WTCD 目前不支持 if
,但是可以用 ?
:
实现。
7.3.1 实现 if then
(condition) ? {
// Then
} : null
7.3.2 实现 if then else
(condition) ? {
// Then
} : {
// Else
}