REPEAT

#### Search Results

Search

# REPEAT

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax-Beschreibung

- Beispiele

Verwandte Statements: `FOR` | `ESCAPE`

Gehört zur Funktionsgruppe: Schleifenverarbeitung

## Funktion

Mit dem Statement `REPEAT` können Sie eine Verarbeitungsschleife initiieren.

Siehe auch Schleifenverarbeitung im Leitfaden zur Programmierung.

## Syntax-Beschreibung

Zwei unterschiedliche Strukturen sind bei diesem Statement möglich:

- Syntax 1 — Statements werden ein- oder mehrmals ausgeführt

- Syntax 2 — Statements werden überhaupt nicht oder mehrmals ausgeführt

Wann die Bedingung ausgewertet wird, ist abhängig davon, ob Sie sie an den Anfang oder das Ende der logischen Bedingung stellen.

Weitere Informationen zu logischen Bedingungen, siehe den Abschnitt Logische Bedingungen im Leitfaden zur Programmierung).

Eine Erläuterung der in den Syntax-Diagrammen benutzten Symbole siehe Syntax-Symbole.

Syntax 1:

`REPEAT` |  |  |  |  |  |
statement |  |  |  | `UNTIL` |  | logical-condition |
`WHILE`
`END-REPEAT` | (nur im Structured Mode)
`LOOP` | (nur im Reporting Mode)

Syntax 2:

`REPEAT` |
|  |  | `UNTIL` |  | logical-condition |  | statement
`WHILE`
`END-REPEAT` | (nur im Structured Mode) |
`LOOP` | (nur im Reporting Mode) |

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`UNTIL` | UNTIL-Option: Die Schleife wird so oft ausgeführt, bis die logische Bedingung erfüllt ist.
`WHILE` | WHILE-Option: Die Schleife wird solange ausgeführt, wie die logische Bedingung erfüllt ist.
`logical-condition` | Logische Bedingung: Wenn Sie eine logische Bedingung angeben, bestimmt die Bedingung, wann die Ausführung der Schleife beendet werden soll. Wenn Sie keine logische Bedingung angeben, müssen Sie die Schleife mit einem `ESCAPE`-, `STOP`- oder `TERMINATE`-Statement beenden, das in der Schleife angegeben ist.
`END-REPEAT` | Ende des REPEAT-Statements: Im Structured Mode muss das für Natural reservierte Wort `END−REPEAT` zum Beenden des `REPEAT`-Statements benutzt werden. Im Reporting Mode wird das Natural-Statement `LOOP` zum Beenden des `REPEAT`-Statements benutzt.
`LOOP`

## Beispiele

- Beispiel 1 — REPEAT-Statement

- Beispiel 2 — REPEAT-Statement mit Optionen WHILE und UNTIL

### Beispiel 1 — REPEAT-Statement

    ** Example 'RPTEX1S': REPEAT (structured mode)
    ************************************************************************
    DEFINE DATA LOCAL
    1 EMPLOY-VIEW VIEW OF EMPLOYEES
      2 PERSONNEL-ID
      2 NAME
    *
    1 #PERS-NR (A8)
    END-DEFINE
    *
    REPEAT
      INPUT 'ENTER A PERSONNEL NUMBER:' #PERS-NR
      IF #PERS-NR = ' '
        ESCAPE BOTTOM
      END-IF
      /*
      FIND EMPLOY-VIEW WITH PERSONNEL-ID = #PERS-NR
        IF NO RECORD FOUND
          REINPUT 'NO RECORD FOUND'
        END-NOREC
        DISPLAY NOTITLE NAME
      END-FIND
    END-REPEAT
    *
    END

Ausgabe des Programms `RPTEX1S`:

    ENTER A PERSONNEL NUMBER: 11500304

Nach Eingabe und Bestätigung der Personalnummer:

            NAME
    --------------------

    KLUGE

Äquivalentes Reporting-Mode-Beispiel: `RPTEX1R`.

### Beispiel 2 — REPEAT-Statement mit Optionen WHILE und UNTIL

    ** Example 'RPTEX2S': REPEAT (with WHILE and UNTIL option)
    ************************************************************************
    DEFINE DATA LOCAL
    1 #X (I1) INIT <0>
    1 #Y (I1) INIT <0>
    END-DEFINE
    *
    REPEAT WHILE #X <= 5
      ADD 1 TO #X
      WRITE NOTITLE '=' #X
    END-REPEAT
    *
    SKIP 3
    REPEAT
      ADD 1 TO #Y
      WRITE '=' #Y
      UNTIL #Y = 6
    END-REPEAT
    *
    END

Ausgabe des Programms `RPTEX2S`:

    #X:    1
    #X:    2
    #X:    3
    #X:    4
    #X:    5
    #X:    6

    #Y:    1
    #Y:    2
    #Y:    3
    #Y:    4
    #Y:    5
    #Y:    6

Äquivalentes Reporting-Mode-Beispiel: `RPTEX2R`.

### On this page

- Funktion
- Syntax-Beschreibung
- Beispiele