Inhalt
Index
Support Über uns
Home

2.4.23 PERFORM




 
Format:
PERFORM

[Marke1 [{THROUGH / THRU} Marke2] ]

[ { [ [WITH] TEST {BEFORE / AFTER} ] UNTIL Bedingung1

/

[ [WITH] TEST {BEFORE / AFTER} ] VARYING Feld1 FROM Feld2 BY Feld3 UNTIL Bedingung2 [ AFTER VARYING Feld4 FROM Feld5 BY Feld6 UNTIL Bedingung3 [AFTER ...] ]

/

Feld7 TIMES } ]

[Befehlssequenz]

[END-PERFORM]



Befehlssequenz darf nur angegeben werden, wenn Marke1 fehlt. Es handelt sich dann um einen sogenannten Inline-PERFORM.

Der PERFORM durchläuft die Cobol-Anweisungen beginnend bei Marke1 bis zur Marke2 (wenn spezifiziert). Danach wird das Programm mit der nächsten Cobol-Anweisung fortgeführt (Rücksprung).

Zur Übersichtlichkeit befindet sich bei der Marke2 üblicherweise die zur besseren Lesbarkeit des Programmes die Cobol-Anweisung EXIT.

Ist Marke2 in der PERFORM - Anweisung nicht angegeben und Marke1 eine SECTION, werden alle Anweisungen bis zum Beginn einer neuen SECTION oder dem Programmende durchlaufen.

Ist Marke1 keine SECTION werden alle Cobol-Anweisungen bis zur nächsten Marke ausgeführt.

Der UNTIL - Zusatz bewirkt, daß die PERFORM - Schleife bis zum Eintreten der Bedingung1 ausgeführt wird. Bedingung1 ist eine normale IF - Anweisung, die auch mit AND und OR verknüpft sein darf.
           Beispiel:


           PERFORM TEST THRU TESTX UNTIL WERT = 4.


          oder 


           PERFORM TEST THRU TESTX UNTIL WERT > 3 AND WERT < 7.



Der VARYING - Zusatz setzt das angegebene Datenfeld1 auf den angegebenen Startwert Wert1. Nach jedem Durchlaufen der PERFORM - Schleife wird dieses Datenfeld1 um Wert2 erhöht bis die UNTIL - Bedingung zutrifft.

Mit AFTER können mehrere VARYING - Zusätze angegeben werden, wobei die letzte AFTER - Anweisung die höchste Priorität hat, d.h. zuerst wird diese VARYING - Anweisung abgehandelt, danach die zuvorliegende usw.
       Beispiel:


           PERFORM TEST THRU TESTX 
                        VARYING WERT1 FROM 1 TO 2 BY 1
              AFTER     VARYING WERT2 FROM 1 TO 3 BY 1.



Hier wird die PERFORM - Schleife insgesamt 6-mal durchlaufen, wobei WERT2 2-mal die Werte 1 bis 3 annimmt.


Wird Marke1 nicht angegegen, handelt es sich um einen sogenannten Inline-PERFORM. Es werden alle nach dem PERFORM folgenden Anweisungen durchlaufen, bis die Anweisung END-PERFORM auftritt.

Die Angabe WITH TEST BEFORE oder AFTER bestimmt ob die Bedingungsangabe vor oder nach dem Durchlaufen der PERFORM - Schleife getestet wird.



Siehe Programm perform.cob

Zurück zu Acc-Cobol Open Statement    Hoch zu Procedure Divison in COBOL    Weiter zu READ
Entwickler Portal Impressum AGB Kontakt


© 1980-2017 Acc Computertechnik GmbH All rights reserved.