Ohne GOTO und IF in der einen oder anderen Art kommt kein Programm aus. CP besitzt die Sprungbefehle go, if und nif.
Go verzweigt stets, if bei einem Wert ungleich Null und nif beim Wert Null. Spruenge koennen nur innerhalb einer Funktion stattfinden. Statt Zeilennummern finden Sprungmarken Verwendung, die durch einen Doppelpunkt, dem der Name der Sprungmarke folgt, definiert werden. Damit ist die Programmierung einer Funktion, die einen ganzen String ausgibt, kein Problem mehr. Die Sprungmarke braucht dem Compiler bei der Uebersetzung der Sprunganweisung noch nicht bekannt zu sein. Dadurch sind Vorwaertsspruenge moeglich. Wurde eine Sprungmarke vergessen, springt der Compiler in den Editor, wobei allerdings der Cursor nicht hinter dem unbekannten Wort steht, sondern hinter dem Ende der Funktion, in der eine Sprungmarke fehlt. */
def ]]++ ]++ by ];
void putc( )
begin
ac by = 0xffd2 sys
bend
void putl( )
int zg ;
begin
zg = go rd
: wr putc
: rd zg ]]++ if wr
bend
char getc( )
begin
0xffe4 sys ac by ]
bend
char key( )
begin
: next getc nif next
bend
main()
begin
"/147/n
Prima Textausgabe/n/n
Das sollten Sie einmal probieren./n
Einfach den Bildschirm vollschreiben,/n
zu Beginn und am Ende doppelte An-/n
fuehrungszeichen setzen und die/n
Returnzeichen, die der Compiler als/n
Leerzeichen ansehen wuerde durch/n
//n ersetzen./n/n
Die Funktion putl kann weit mehr als/n
einen ganzen Bildschirm ausgeben./n/n
Die Funktion getc liest ein Zeichen/n
ein, key macht dasselbe, wartet aber/n
bis kein Nullbyte mehr kommt./n/n/n
Weiter mit beliebiger Taste" putl key
bend
/* Diesmal, da das Warten auf einen Tastendruck mit key realisiert wurde, koennen Sie auch mit Menuepunkt 6 starten. Weiter mit lektion6 */