在阅读一些源代码时,我偶然发现了下面这段正在进行中的代码:
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".
为了将来的参考,进度知识库是一个获取信息的好地方。