多个返回语句(但是单个返回值)
函数可以有多个 return 语句,它们可以放在实际函数的不同部分。他们都需要返回相同的数据类型。
FUNCTION returning DATE ( dat AS DATE):
IF dat < TODAY THEN DO:
DISPLAY "<".
RETURN dat - 200.
END.
ELSE DO:
DISPLAY ">".
RETURN TODAY.
END.
END.
MESSAGE returning(TODAY + RANDOM(-50, 50)) VIEW-AS ALERT-BOX.
一个函数实际上根本不需要返回任何东西。那它的返回值会是多少? (未知)。编译器不会捕获这个(但是你的同事会这样避免它)。
/* This function will only return TRUE or ?, never FALSE, so it might lead to troubles */
FUNCTION inTheFuture LOGICAL ( dat AS DATE):
IF dat > TODAY THEN DO:
RETURN TRUE.
END.
END.
MESSAGE inTheFuture(TODAY + RANDOM(-50, 50)) VIEW-AS ALERT-BOX.