我希望将两个循环嵌套在一起。我想找到可以从1到20整除的最大整数。我的程序代码如下:
IDENTIFICATION DIVISION.
PROGRAM-ID. EULER3.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 startNum PIC 9(10) VALUE 380.
01 counter PIC 9(2).
01 check PIC 9(1) VALUE 0.
01 finalVal PIC 9(10)
PROCEDURE DIVISION.
MAIN-PROCEDURE.
PERFORM whileLoop UNTIL check = 1.
DISPLAY "Largest number divisible by 19 thru 20 " startNum.
STOP RUN.
whileLoop.
SET counter TO 11.
DISPLAY counter.
PERFORM forLoop UNTIL counter = 20
forLoop.
IF FUNCTION MOD(startNum, counter) = 0
IF counter = 19
SET finalVal TO startNum.
ADD 1 TO check.
ELSE
ADD 20 TO startNum
ADD 1 TO counter.
END-IF.
控制台是:
jdoodle.cobc:30: warning: line not terminated by a newline
jdoodle.cobc:9: error: syntax error, unexpected PROCEDURE, expecting EXTERNAL or EXTERNAL-FORM or GLOBAL or IDENTIFIED
jdoodle.cobc:10: error: PROCEDURE DIVISION header missing
jdoodle.cobc:10: error: syntax error, unexpected Identifier
jdoodle.cobc: in paragraph 'whileLoop':
jdoodle.cobc:21: error: 'forLoop' is not defined
jdoodle.cobc:19: error: invalid expression
jdoodle.cobc:26: error: syntax error, unexpected ELSE
jdoodle.cobc:30: error: syntax error, unexpected END-IF
jdoodle.cobc:19: error: 'forLoop' is not defined
我不确定为什么要说我没有程序部门。我已经用Python编写了程序并使用了这种方法,因此为什么我将我的区域命名为forLoop和whileLoop。
我可能已经错过了一些其他语法错误。
01 finalVal PIC 9(10) add a final period.
SET finalVal TO startNum. remove the period.
ADD 1 TO check. remove the period.
ADD 20 TO startNum add a final period or an END-IF