7.81.2 RETURNの使用例

LANSA

7.81.2 RETURNの使用例


以下の例のサブルーチンは、複雑なIF-ELSE構造の代わりに、RETURNコマンドを使用しています。

SUBROUTINE  NAME(MATHS) PARMS(#F1 #OP #F2 #RS)
 
DEFINE      FIELD(#F1) TYPE(*DEC)  LENGTH(7)  DECIMALS(0)
DEFINE      FIELD(#OP) TYPE(*CHAR) LENGTH(1)
DEFINE      FIELD(#F2) TYPE(*DEC)  LENGTH(7)  DECIMALS(0)
DEFINE      FIELD(#RS) TYPE(*DEC)  LENGTH(15) DECIMALS(5)
 
IF          COND('#OP = ''+''')
CHANGE      FIELD(#RS) TO('#F1 + #F2')
RETURN
ENDIF
 
IF          COND('#OP = ''-''')
CHANGE      FIELD(#RS) TO('#F1 - #F2')
RETURN
ENDIF
 
IF          COND('#OP = ''*''')
CHANGE      FIELD(#RS) TO('#F1 * #F2')
RETURN
ENDIF
 
IF          COND('#OP = ''/''')
CHANGE      FIELD(#RS) TO('#F1 / #F2')
RETURN
ENDIF
 
MESSAGE     MSGTXT('Operation specified is not +,-,* or /')
 
ENDROUTINE