【发布时间】:2020-05-13 16:15:19
【问题描述】:
我正在尝试找出正确的语法,以便在类返回 false 时循环以获取正确的用户输入。
validate.cls file
******DEFINITIONS and other code********
METHOD PUBLIC VOID isEntryCorrect (INPUT userEntry AS CHARACTER):
DEFINE VARIABLE cLogical as LOGICAL NO-UNDO.
IF userEntry = "wrong" THEN
DO:
cLogical = FALSE.
END.
ELSE IF userEntry = "right" THEN
DO:
cLogical = TRUE.
END.
END METHOD.
有一个 .w 文件在按钮单击时接受用户输入并将 FILL-IN:SCREEN-VALUE 分配给一个变量,然后将其传递给类中的方法。
UserInput.w file
****class definition***
DEFINE VAR userInput as validate NO-UNDO.
userInput = NEW validate("").
****local variable definition****
DEF VAR windowInput AS CHARACTER NO-UNDO.
DEF VAR iCount as INTEGER NO_UNDO INITIAL 0.
windowInput = FILL-IN:SCREEN-VALUE.
但是那个 windowInput 需要传递给方法。这就是我卡住的地方。
当方法为假时,我需要程序循环并不断要求用户输入正确的字符串,但我似乎无法找出正确的语法,或者我的思路有误。
我的想法是,我可以使用 DO WHILE 来保持循环并终止计数器。
****the incorrect code*****
DO WHILE userInput:isEntryCorrect(windowInput) <> TRUE OR iCOunt = 3:
windowInput = FILL-IN:SCREEN-VALUE.
iCount = iCount + 1.
END.
如果这确实有效,它可能会一直循环直到数到三,然后继续执行程序的其余部分。
【问题讨论】:
标签: openedge progress-4gl