A variable is a character or group of characters representing a value. A variable can contain either single- or double-byte characters or both. (Double-byte characters are valid only if OPTIONS ETMODE is the first instruction of your program.) The following variable big represents the value one million or 1,000,000.
big = 1000000
Variables can refer to different values at different times. If you assign a different value to big, it gets the value of the new assignment, until it is changed again.
big = 999999999
Variables can also represent a value that is unknown when the program is written. In the following example, the user's name is unknown, so it is represented by the variable who.
/* Gets name from current input stream */
PARSE PULL who /* and puts it in variable "who" */
A variable name, the part that represents the value, is always on the left of the assignment statement and the value itself is on the right. In the following example, the variable name is variable1.
variable1 = 5
SAY variable1
As a result of the preceding assignment statement, the language processor assigns variable1 the value 5, and the SAY produces:
5
Variable names can consist of:
Restrictions on the variable name are:
Examples of acceptable variable names are:
ANSWER ?98B A Word3 number the_ultimate_value
Also, if OPTIONS ETMODE is the first instruction in your program, the following are valid DBCS variable names, where < represents shift-out, > represents shift-in, X, Y, and Z represent DBCS characters, and lowercase letters and numbers represent themselves.
<.X.Y.Z> number_<.X.Y.Z> <.X.Y>1234<.Z>
The value of the variable, which is the value the variable name represents, might be categorized as follows:
This value can be a string.
'This value is a literal string.'
variable1 = variable2
In the preceding example, variable1 changes to the value of variable2, but variable2 remains the same.
variable2 = 12 + 12 - .6 /* variable2 becomes 23.4 */
Before a variable is assigned a value, its value is the value of its own name translated to uppercase. For example, if the variable new has not been assigned a value, then
SAY new
produces
NEW
Which of the following are valid REXX variable names?
ANSWERS