There are two kinds of conditional block:
Examples of these blocks are given below as fragments of E code (i.e., the examples are not complete E programs).
IF x>0 x:=x+1 WriteF('Increment: x is now \d\n', x) ELSEIF x<0 x:=x-1 WriteF('Decrement: x is now \d\n', x) ELSE WriteF('Zero: x is 0\n') ENDIF
In the above
IF block, the first part checks if the value of
x is greater than zero, and, if it is,
x is incremented and the new value is printed (with a message saying it was incremented).
The program will then skip the rest of the block, and will execute the statements which follow the
x it is not greater than zero the
ELSEIF part is checked, so if
x is less than zero it will be decremented and printed, and the rest of the block is skipped.
x is not greater than zero and not less than zero the statements in the
ELSE part are executed, so a message saying
x is zero is printed.
IF conditional is described in more detail below.
SELECT x CASE 0 WriteF('x is zero\n') CASE 10 WriteF('x is ten\n') CASE -2 WriteF('x is -2\n') DEFAULT WriteF('x is not zero, ten or -2\n') ENDSELECT
SELECT block is similar to the
IF block--it does different things depending on the value of
x is only checked against specific values, given in the series of
If it is not any of these values the
DEFAULT part is executed.
There's also a variation on the
SELECT block (known as the
SELECT..OF block) which matches ranges of values and is quite fast.
The two kinds of
SELECT block are described in more detail below.
Go to the Next or Previous section, the Detailed Contents, or the Amiga E Encyclopedia.