Having issues with using the GO-TO statement. This is suppose to run until the user types 'END'. If I type 'END' when I first open the program it will close out but if I type it after entering valid data for the first pass thru it just continues to bring back the user input data screen. 

```
   ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.

       SELECT USED-CAR-FILE-OUT
           ASSIGN TO 'USED-CAR.RPT'
           ORGANIZATION IS LINE SEQUENTIAL.

   DATA DIVISION.
   FILE SECTION.

   FD USED-CAR-FILE-OUT.
   01 USED-CAR-RECORD-OUT              PIC X(80).

   WORKING-STORAGE SECTION.
   01  FIRST-RECORD                    PIC X(3)     VALUE 'YES'.
   01  ID-CODE                         PIC X(3).
   01  TOTAL-CASH-PAYMENT              PIC 9(5).
   01  MONTHLY-PAYMENT                 PIC 9(4).
   01  NUMBER-OF-MONTHS                PIC 9(3).
   01  TOTAL-BALANCE                   PIC S9(6)V99 VALUE ZEROS.
   01  INTEREST-COLLECTED              PIC 99V99    VALUE ZEROS.
   01  MONTH-DIFF                      PIC 99       VALUE ZEROS.
   01  MONTH-NUM                       PIC 99       VALUE ZEROS.
   01  YEAR-NUM                        PIC 99       VALUE ZEROS.
   01  ID-HOLD                         PIC X(3)     VALUE SPACES.
   01  PAYMENT-HOLD                    PIC X(3)     VALUE SPACES.

   01  DETAIL-LINE.
       05  ID-CODE-DL                  PIC X(3).
       05                              PIC X(3)    VALUE SPACES.
       05                              PIC X(4)    VALUE 'Yr='.
       05  YEAR-NUMBER-DL              PIC Z9.
       05                              PIC X(4)    VALUE SPACES.
       05                              PIC X(4)    VALUE 'MO='.
       05  MONTH-NUMBER-DL             PIC Z9.
       05                              PIC X(4)    VALUE SPACES.
       05                              PIC X(5)    VALUE 'Pmt='.
       05  PAYMENT-DL                  PIC $$$,$$$.
       05                              PIC X(4)    VALUE SPACES.
       05                              PIC X(5)    VALUE 'Int='.
       05  INTEREST-EARNED-DL          PIC $$$$.99.
       05                              PIC X(3)    VALUE SPACES.
       05                              PIC X(5)    VALUE 'Bal='.
       05  BALANCE-DL                  PIC $$$,$$$.99.

   PROCEDURE DIVISION.
   100-MAIN.

       OPEN OUTPUT USED-CAR-FILE-OUT
           PERFORM 200-USER-INPUT THRU 299-EXIT
       CLOSE USED-CAR-FILE-OUT
       STOP RUN.

   200-USER-INPUT.
       DISPLAY 'Used Car Sales Report'
       DISPLAY 'Enter the ID code (or END) - maxium three char.'
       ACCEPT ID-CODE
       IF ID-CODE = 'END'
           GO TO 299-EXIT
       END-IF
       DISPLAY 'Enter the Total Cash Payment - maximum five digits'
       ACCEPT TOTAL-CASH-PAYMENT
       DISPLAY 'Enter the Monthly Payment - maximum four digits'
       ACCEPT MONTHLY-PAYMENT

       DISPLAY 'Enter the Number of Months - maximum three digits'
       ACCEPT NUMBER-OF-MONTHS
       PERFORM 300-RECORD-PROCESS.

   299-EXIT.
       EXIT.

   300-RECORD-PROCESS.
       IF TOTAL-CASH-PAYMENT > 0
           IF FIRST-RECORD = 'YES'
               MOVE ID-CODE TO ID-CODE-DL
               MOVE 1 TO YEAR-NUMBER-DL
               MOVE 1 TO YEAR-NUM
               move 1 to MONTH-NUMBER-DL
               MOVE TOTAL-CASH-PAYMENT TO PAYMENT-DL
               MOVE PAYMENT-DL TO MONTHLY-PAYMENT
               ADD MONTHLY-PAYMENT TO TOTAL-BALANCE
               MOVE 'NO' TO FIRST-RECORD
            END-IF
           COMPUTE INTEREST-COLLECTED ROUNDED = TOTAL-BALANCE
            * .0175 / 12
           MOVE INTEREST-COLLECTED TO INTEREST-EARNED-DL
           ADD INTEREST-COLLECTED TO TOTAL-BALANCE
           MOVE TOTAL-BALANCE TO BALANCE-DL
           ADD 1 TO MONTH-DIFF
           MOVE MONTH-DIFF TO MONTH-NUMBER-DL
           IF MONTH-NUMBER-DL > 13
               ADD 1 TO MONTH-NUM
               MOVE MONTH-NUM TO MONTH-NUMBER-DL
           END-IF
           IF MONTH-NUMBER-DL = 13
               MOVE 1 TO MONTH-NUM
               MOVE MONTH-NUM TO MONTH-NUMBER-DL
           END-IF
           IF MONTH-NUM = 1
               ADD 1 TO YEAR-NUM
               MOVE YEAR-NUM TO YEAR-NUMBER-DL
           END-IF
           MOVE DETAIL-LINE TO USED-CAR-RECORD-OUT
           WRITE USED-CAR-RECORD-OUT
           AFTER ADVANCING 1 LINE
           MOVE ID-HOLD TO ID-CODE-DL

           IF MONTH-DIFF < NUMBER-OF-MONTHS
               PERFORM 300-RECORD-PROCESS
           END-IF
           PERORM 200-USER-INPUT
       END-IF

       IF MONTHLY-PAYMENT > 0
           IF FIRST-RECORD = 'YES'
               MOVE ID-CODE TO ID-CODE-DL
               MOVE 1 TO YEAR-NUMBER-DL
               MOVE 1 TO YEAR-NUM
               move 1 to MONTH-NUMBER-DL
               MOVE 'NO' TO FIRST-RECORD
           END-IF

           MOVE MONTHLY-PAYMENT TO PAYMENT-DL
           MOVE PAYMENT-DL TO MONTHLY-PAYMENT
           ADD MONTHLY-PAYMENT TO TOTAL-BALANCE
           COMPUTE INTEREST-COLLECTED ROUNDED = TOTAL-BALANCE
            * .0175 / 12
           MOVE INTEREST-COLLECTED TO INTEREST-EARNED-DL
           ADD INTEREST-COLLECTED TO TOTAL-BALANCE
           MOVE TOTAL-BALANCE TO BALANCE-DL
           ADD 1 TO MONTH-DIFF
           MOVE MONTH-DIFF TO MONTH-NUMBER-DL
           IF MONTH-NUMBER-DL > 13
               ADD 1 TO MONTH-NUM
               MOVE MONTH-NUM TO MONTH-NUMBER-DL
           END-IF
           IF MONTH-NUMBER-DL = 13
               MOVE 1 TO MONTH-NUM
               MOVE MONTH-NUM TO MONTH-NUMBER-DL
           END-IF
           IF MONTH-NUM = 1
               ADD 1 TO YEAR-NUM
               MOVE YEAR-NUM TO YEAR-NUMBER-DL
           END-IF
           MOVE DETAIL-LINE TO USED-CAR-RECORD-OUT
           WRITE USED-CAR-RECORD-OUT
           AFTER ADVANCING 1 LINE
           MOVE ID-HOLD TO ID-CODE-DL
           IF TOTAL-CASH-PAYMENT > 0
               MOVE 0 TO TOTAL-CASH-PaYMENT
               MOVE 0 TO PAYMENT-DL
           END-IF
           IF MONTH-DIFF < NUMBER-OF-MONTHS
           PERFORM 300-RECORD-PROCESS
           END-IF
       PERFORM 200-USER-INPUT
       END-IF.

```

*EDIT solved the issue below*
I also am having issues if months > 24. I step through the program and it shows my last detail line as the correct result but yet my output stops at 24 months. Thanks in advance.