"WHEN ? THEN"的含义是什么?



在阅读一些源代码时,我偶然发现了下面这段正在进行中的代码:

WHEN ? THEN
...

在其他语言中,我看到过像IF TRUE THEN ...(这个代码总是要运行)或IF FALSE THEN ...(这个代码永远不会运行)这样的代码。

因为?的意思是"没有";在Progress中,这段代码的含义与IF FALSE THEN ...相同吗?

如果在CASE语句中使用,它将CASE块中使用的值与未知值进行比较。这类似于类c语言中的switch语句。

CASE lOk:
WHEN TRUE THEN ...
WHEN FALSE THEN ...
WHEN ? THEN ...
END CASE . 

在表达式

WHEN value[ OR WHEN value] . . . THEN

每个值都是一个表达式,求值为expression的可能值。如果value匹配表达式的当前值,则执行相关的块或语句。现在的问题是,如何求值为未知值或空值。这是用"?"的性格。例如:

IF myVariable = ? THEN DISPLAY "This value is unknown".

如果您需要计算与实际问号字符的比较,则只需将问号括在单引号或双引号中。

IF myVariable = '?' THEN DISPLAY "This is a question mark".
IF myVariable = "?" THEN DISPLAY "This is a question mark".

为了将来的参考,进度知识库是一个获取信息的好地方。

相关内容

最新更新