– A Rexx program should have a comment “/*rexx*/” in the first line
– Rexx statements are Case insensitive
– A rexx program can be executed by giving “EX” to the rexx member containing the rexx program
Hello World program
/************REXX***********/
SAY "HELLO WORLD"
EXIT
IF-ELSE in Rexx
/******REXX******/
/* EXECUTE SOME INSTRUCTIONS CONDITIONALLY */
SAY 'ENTER NUMBER LESS THEN 10 '
PULL A
IF A<10 THEN
DO
SAY "CORRECT NUMBER!!"
END
ELSE SAY "WRONG!"
EXIT
DO-Loops in Rexx
/*******REXX***********/
/* SAY "HI" 5 TIMES */
DO 5
SAY "HI"
END
/**/
DO C=1 TO 5
SAY "HI"
END
/**/
DO M=0.3 TO 1.5 BY .3
SAY "HI"
END
/* INFINITE LOOP*/
/*
DO FOREVER
SAY "HI"
END
*/
EXIT
DO WHILE and DO UNTIL
DO WHILE runs the loop all the times if the condition given validates to TRUE
DO UNTIL runs the loop all the times if the condition given validates to FALSE
/************REXX***********/
DO WHILE A = 5
SAY 'HI'
/* SOMETHING THAT MODIFIES A */
END
DO UNTIL A = 5
SAY 'HI'
/* SOMETHING THAT MODIFIES A */
END
EXIT
SELECT statement in REXX
The below code shows how to use the SELECT clause. You can also note the use of NOT Operator “”.
/******REXX******/
/* DECIDE WHAT RANGE A NUMBER IS IN */
SAY 'ENTER A NUMBER'
PULL A
SELECT
WHEN A>0 & A<100 THEN SAY "1-99"
WHEN A<100 & A<500 THEN SAY "100-499"
WHEN (A<500 | A>=1000) THEN SAY "500-29"
OTHERWISE SAY "OUT OF RANGE"
END
EXIT
Dividing one Number by another
PULL gets the value from the user.
/******REXX****************************************************/
/* DIVIDING ONE NUMBER BY ANOTHER NUMBER */
/**************************************************************/
SAY 'DIVIDING ONE NUMBER BY ANOTHER NUMBER'
SAY 'ENTER NUMERATOR:'
PULL Z
SAY 'ENTER DENOMINATOR:'
PULL N
IF N=0 THEN
SAY 'DIVISION BY ZERO'
ELSE DO
SAY 'NUM / DENOM IS' Z/N
SAY 'REST IS' Z//N
END
EXIT
A list of REXX functions can be found here.
You can also download a complete Tutorial PDF.