i'm new at programming in COBOL so I tried to make a sample calculator, but I couldn't make it work. The calc enter in an infinite loop and I didn't find the reason, I even tried to copy a similar code and didn't work. So, is it a OpenCobolIDE problem or it's the code?
Code:
IDENTIFICATION DIVISION.
PROGRAM-ID. Loops.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WSS-FIRSTOP PIC S9(05)V9(04).
77 WSS-SECONDOP PIC S9(05)V9(04).
77 WSS-RESULT PIC S9(10)V9(04).
77 WSS-OPERATOR PIC A(01).
77 WSS-CHOICE PIC X(01).
PROCEDURE DIVISION.
LOOP SECTION.
PERFORM 0001-STARTCALC UNTIL WSS-CHOICE = 2.
STOP RUN.
STARTING SECTION.
0001-STARTCALC.
DISPLAY "1.- CALCULATOR, 2.- EXIT".
DISPLAY "ENTER:", ACCEPT WSS-CHOICE.
IF WSS-CHOICE = 1
PERFORM 0002-DATAREQUEST
PERFORM 0003-OPERATIONS
ELSE IF WSS-CHOICE = 2
STOP RUN
ELSE
DISPLAY "ERROR. INVALID OPTION.".
0002-DATAREQUEST.
CHOICE SECTION.
DISPLAY "CALCULATOR 1.0".
DISPLAY "ENTER 1ST OPERATOR:".
ACCEPT WSS-FIRSTOP.
DISPLAY "ENTER 2ND OPERATOR".
ACCEPT WSS-SECONDOP.
DISPLAY "CHOOSE OPERATION TO PERFORM:".
DISPLAY "A: ADD, S: SUBTRACT, M: MULTIPLY, D: DIVISION".
ACCEPT WSS-OPERATOR.
0003-OPERATIONS.
OPERATIONS SECTION.
IF WSS-OPERATOR = "A"
ADD WSS-FIRSTOP TO WSS-SECONDOP GIVING WSS-RESULT
DISPLAY "ADDITION RESULT: ", WSS-RESULT
ELSE IF WSS-OPERATOR = "S"
SUBTRACT WSS-FIRSTOP FROM WSS-SECONDOP GIVING WSS-RESULT
DISPLAY "SUBTRACTING RESULT: ", WSS-RESULT
ELSE IF WSS-OPERATOR = "M"
MULTIPLY WSS-FIRSTOP BY WSS-SECONDOP GIVING WSS-RESULT
DISPLAY "MULTIPLYING RESULT: ", WSS-RESULT
ELSE IF WSS-OPERATOR = "D"
DIVIDE WSS-SECONDOP INTO WSS-FIRSTOP GIVING WSS-RESULT
DISPLAY "DIVIDING RESULT: ", WSS-RESULT
ELSE
DISPLAY "INVALID OPERATOR. CHECK".