Bha*_*rat 0 progress-4gl openedge
我是 4GL 语言的新手。我编写了一个逻辑,试图检查维数组的 <> "" 值并给出语法错误。谁能帮我解决我犯错误的地方以及我写的逻辑是否正确?
DEFINE VARIABLE anotarray AS CHARACTER NO-UNDO.
DEFINE VARIABLE barray AS CHARACTER EXTENT 3 NO-UNDO.
ASSIGN
barray[1] = "yes"
barray[2] = "no"
anotarray = ""
.
/***value can be stored randomly in variable barray. so we cannot specify [1],[2],[3] for if condition***/
/***based on req. I need to check both anotarray or barray <> "" ***/
IF (anotarray OR barray ) <> "" THEN DISP barray.
/*** ERROR thrown- An array was specified in an expression, on the right-hand side of an assignment, or as a parameter when no array is appropriate or expected. (361)*** /
Run Code Online (Sandbox Code Playgroud)
此语法无效:IF (anotarray OR barray) <> "" THEN ...
您必须循环遍历数组的所有元素。DO您可以使用语句和函数来完成此操作EXTENT来完成此操作。
另外,您必须将两个变量与空字符串进行比较:IF anotarray <> "" OR barray[ix] <> "" THEN ...
这段代码应该可以工作:
DEFINE VARIABLE anotarray AS CHARACTER NO-UNDO.
DEFINE VARIABLE barray AS CHARACTER EXTENT 3 NO-UNDO.
DEFINE VARIABLE ix AS INTEGER NO-UNDO.
ASSIGN
barray[1] = "yes"
barray[2] = "no"
anotarray = ""
.
DO ix = 1 TO EXTENT(barray):
IF barray[ix] <> "" OR anotarray <> "" THEN DISP barray[ix].
END.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
529 次 |
| 最近记录: |