NATURAL
From Wikipedia, the free encyclopedia
NATURAL is a Fourth-generation programming language from Software AG.
* Hello World in NATURAL WRITE 'Hello World!' END
It has the "ESCAPE TOP" flow control instruction, which is similar to "continue" in C, or "Continue For" in "Visual Basic.Net 2005", except that it also works within subroutines to both return from the routine and then continue the calling statement's processing loop.
Like "continue", it avoids large amounts of identation levels when using nested instruction blocks inside any loop.
Example with ESCAPE TOP:
DEFINE DATA LOCAL
1 I (N3) /* 3 digits without decimals
END-DEFINE
FOR I = 2 TO 100
IF (I / 2 * 2) = I AND I > 2
WRITE 'Number' I 'is divisible by 2'
ESCAPE TOP
END-IF
IF (I / 3 * 3) = I AND I > 3
WRITE 'Number' I 'is divisible by 3'
ESCAPE TOP
END-IF
IF (I / 5 * 5) = I AND I > 5
WRITE 'Number' I 'is divisible by 5'
ESCAPE TOP
END-IF
IF (I / 7 * 7) = I AND I > 7
WRITE 'Number' I 'is divisible by 7'
ESCAPE TOP
END-IF
IF (I / 11 * 11) = I AND I > 11
WRITE 'Number' I 'is divisible by 11'
ESCAPE TOP
END-IF
WRITE 'Number' I 'is prime'
END-FOR
END
The levels of indentation can be automatically adjusted with the STRUCT command in the Natural Editor.
The same example, without ESCAPE TOP:
DEFINE DATA LOCAL
1 I (N3) /* 3 digits without decimals
END-DEFINE
FOR I = 2 TO 100
IF (I / 2 * 2) = I AND I > 2
WRITE 'Number' I 'is divisible by 2'
ELSE
IF (I / 3 * 3) = I AND I > 3
WRITE 'Number' I 'is divisible by 3'
ELSE
IF (I / 5 * 5) = I AND I > 5
WRITE 'Number' I 'is divisible by 5'
ELSE
IF (I / 7 * 7) = I AND I > 7
WRITE 'Number' I 'is divisible by 7'
ELSE
IF (I / 11 * 11) = I AND I > 11
WRITE 'Number' I 'is divisible by 11'
ELSE
WRITE 'Number' I 'is prime'
END-IF
END-IF
END-IF
END-IF
END-IF
END-FOR
END