If statement 如何在正在进行的案例4GL中编写此IF语句?
我试图给用户一个在图像上过滤的机会。在我的代码中,我将收到一个字符串,如If statement 如何在正在进行的案例4GL中编写此IF语句?,if-statement,switch-statement,filtering,progress-4gl,If Statement,Switch Statement,Filtering,Progress 4gl,我试图给用户一个在图像上过滤的机会。在我的代码中,我将收到一个字符串,如 ASSIGN img = "images\green.png". 我认为最好在CASE中编写下面的IF语句,但我不知道如何编写,因为在CASE语句中不能使用匹配项或任何其他变量值 IF img MATCHES "*green*" THEN DO: MESSAGE "It's green!" VIEW-AS ALERT-BOX INFO BUTTONS OK. END. ELSE IF img M
ASSIGN img = "images\green.png".
我认为最好在CASE中编写下面的IF语句,但我不知道如何编写,因为在CASE语句中不能使用匹配项或任何其他变量值
IF img MATCHES "*green*" THEN DO:
MESSAGE "It's green!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
ELSE IF img MATCHES "*orange*" THEN DO:
MESSAGE "It's orange!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
ELSE IF img MATCHES "*red*" THEN DO:
MESSAGE "It's red!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
所以我显然不能这样写:
CASE img:
WHEN MATCHES "*green*" THEN DO:
MESSAGE "It's green!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
WHEN MATCHES "*orange*" THEN DO:
MESSAGE "It's red!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END
WHEN MATCHES "*red*" THEN DO:
MESSAGE "It's red!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
END CASE.
有什么想法吗?还是我把它留在IF语句中?这里有一个小技巧,我们用来在case语句中放置表达式:
CASE TRUE:
WHEN img MATCHES "*green*" THEN DO:
MESSAGE "It's green!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
WHEN img MATCHES "*orange*" THEN DO:
MESSAGE "It's orange!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
WHEN img MATCHES "*red*" THEN DO:
MESSAGE "It's red!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
OTHERWISE DO:
MESSAGE "It's something else!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
END CASE.
我不清楚你到底想做什么。if-else-if树可能和case语句一样快,但也同意它不是那么优雅。我知道你的例子很琐碎,但为了更优雅地思考,我需要理解你将要做什么。您提到了筛选,但我看不出您显示的代码将如何执行筛选操作。此代码只是IF语句的一个示例,没有显示筛选所需的代码。但我会坚持使用IF语句,因为它更容易阅读。谢谢你的时间!我会坚持使用IF语句。语义技巧很难阅读,将来可能会被打破…@Jensd我想你是对的,它会更难阅读。我将只使用IF语句。