Cobol 返回到Main,但使用自由格式

Cobol 返回到Main,但使用自由格式,cobol,gnucobol,Cobol,Gnucobol,我在写一个虚拟时间机器 我想回到一年评估的开始,但自由格式我不能只说转到MAIN 我基本上希望这个计划说:你想评估其他年份吗? 如果是,则转到MAIN,因为我使用自由格式编写长文本 如果没有停止运行 ACCEPT INPUT1 IF INPUT1 = 1900 DISPLAY"London reaches 4,300,000 inhabitants" DISPLAY"Paris reaches 2,00

我在写一个虚拟时间机器 我想回到一年评估的开始,但自由格式我不能只说转到MAIN 我基本上希望这个计划说:你想评估其他年份吗? 如果是,则转到MAIN,因为我使用自由格式编写长文本 如果没有停止运行

ACCEPT INPUT1
           IF INPUT1 = 1900
                  DISPLAY"London reaches 4,300,000 inhabitants"
                  DISPLAY"Paris reaches 2,000,000 inhabitants"
                  DISPLAY"From 14 May to 28 October, the 2nd Olympics will take place in Paris."
                  DISPLAY"In Great Britain, on 28 February, the Labour representation committee was founded, under the leadership of Ramsay McDonald (1866-1937), which united, within the new party, associations and unions of socialist orientation."
                  DISPLAY"Bernhard von Bülow succeeded the Prince of Hohenlohe, Chlodwig, as the new Chancellor of the German Reich (1900 - 1909)."
                  DISPLAY"The American Schools of Oriental Research is founded."
               END-IF
               DISPLAY "Do you want to analyze the events of other years??"
               ACCEPT Q
               IF Q = "Y" OR "YES" OR "y" OR "yes" OR "Yes" GO TO 
                   ELSE DISPLAY "OK, GOOD JOB :)"
                       DISPLAY "I EXIT IN 3 SECONDS..."
                       CALL "CBL_OC_NANOSLEEP" USING "1000000000"
                   END-CALL
                   DISPLAY "I EXIT IN 2 SECONDS.."
                   CALL "CBL_OC_NANOSLEEP" USING "1000000000"
                   END-CALL
                   DISPLAY "I EXIT IN 1 SECOND."
                   CALL "CBL_OC_NANOSLEEP" USING "300000000"
                   END-CALL
               STOP RUN.

你有什么想法吗?非常感谢:

自由形式参考格式没有删除段落或转到,因此您可以简单地添加这些内容,一切正常。 但我建议使用一个主逻辑,将循环作为一个循环,并稍微构造代码,在这种情况下:

  MAIN SECTION.
     PERFORM TIME-MACHINE UNTIL NOT (Q = "Y" OR "YES")
     PERFORM ENDING-CINEMA
     GOBACK.
  *>
  TIME-MACHINE SECTION.
     ACCEPT INPUT1
     IF INPUT1 = 1900
        DISPLAY"London reaches 4,300,000 inhabitants"
        DISPLAY"Paris reaches 2,000,000 inhabitants"
        DISPLAY"From 14 May to 28 October, the 2nd Olympics will take place in Paris."
        DISPLAY"In Great Britain, on 28 February, the Labour representation committee was founded, under the leadership of Ramsay McDonald (1866-1937), which united, within the new party, associations and unions of socialist orientation."
        DISPLAY"Bernhard von Bülow succeeded the Prince of Hohenlohe, Chlodwig, as the new Chancellor of the German Reich (1900 - 1909)."
        DISPLAY"The American Schools of Oriental Research is founded."
     END-IF
     DISPLAY "Do you want to analyze the events of other years??"
     ACCEPT Q
     INSPECT Q (1:3) CONVERTING "yes" to "YES"
     CONTINUE.
  *>
  ENDING-CINEMA SECTION.
     DISPLAY "OK, GOOD JOB :)"
     DISPLAY "I EXIT IN 3 SECONDS..."
     CONTINUE AFTER 1 SECOND  *> for "old" GnuCOBOL use a call to "C$SLEEP" USING "1"
     DISPLAY "I EXIT IN 2 SECONDS.."
     CONTINUE AFTER 1 SECOND
     DISPLAY "I EXIT IN 1 SECOND."
     CONTINUE AFTER 1 SECOND
     CONTINUE.

自由形式的参考格式并没有删除段落或转到,所以您可以简单地添加这些段落,就可以了。 但我建议使用一个主逻辑,将循环作为一个循环,并稍微构造代码,在这种情况下:

  MAIN SECTION.
     PERFORM TIME-MACHINE UNTIL NOT (Q = "Y" OR "YES")
     PERFORM ENDING-CINEMA
     GOBACK.
  *>
  TIME-MACHINE SECTION.
     ACCEPT INPUT1
     IF INPUT1 = 1900
        DISPLAY"London reaches 4,300,000 inhabitants"
        DISPLAY"Paris reaches 2,000,000 inhabitants"
        DISPLAY"From 14 May to 28 October, the 2nd Olympics will take place in Paris."
        DISPLAY"In Great Britain, on 28 February, the Labour representation committee was founded, under the leadership of Ramsay McDonald (1866-1937), which united, within the new party, associations and unions of socialist orientation."
        DISPLAY"Bernhard von Bülow succeeded the Prince of Hohenlohe, Chlodwig, as the new Chancellor of the German Reich (1900 - 1909)."
        DISPLAY"The American Schools of Oriental Research is founded."
     END-IF
     DISPLAY "Do you want to analyze the events of other years??"
     ACCEPT Q
     INSPECT Q (1:3) CONVERTING "yes" to "YES"
     CONTINUE.
  *>
  ENDING-CINEMA SECTION.
     DISPLAY "OK, GOOD JOB :)"
     DISPLAY "I EXIT IN 3 SECONDS..."
     CONTINUE AFTER 1 SECOND  *> for "old" GnuCOBOL use a call to "C$SLEEP" USING "1"
     DISPLAY "I EXIT IN 2 SECONDS.."
     CONTINUE AFTER 1 SECOND
     DISPLAY "I EXIT IN 1 SECOND."
     CONTINUE AFTER 1 SECOND
     CONTINUE.

好的,它工作了,但它说它需要结束执行,但对于其他所有工作,时间机器部分和结束电影院部分中的最终CONTINUE语句都是不必要的。@ScottNelson是的,CONTINUE的CONTINUEpart。不是必需的,而是一个样式问题,因为所有的部分都是一个可以内联所有内容或使用GO Take的部分,它工作,但它说它需要结束执行,但对于其他所有内容,它工作时间机器部分和结束电影院部分中的最终CONTINUE语句是不必要的。@ScottNelson是的,CONTINUEpart of CONTINUE。不是必需的,而是样式问题,因为所有部分都是一个可以内联所有内容或使用“转到”的部分