Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement COBOL程序中出现语法错误,如果_If Statement_Syntax Error_Cobol - Fatal编程技术网

If statement COBOL程序中出现语法错误,如果

If statement COBOL程序中出现语法错误,如果,if-statement,syntax-error,cobol,If Statement,Syntax Error,Cobol,我用COBOL编写代码,在添加下面列出的if语句之后,我不断得到 " 在“000 main”段中: 错误:语法错误,如果出现意外错误“ 在我添加下面的if语句之前,一切都很好 if ( (num-months> months-in-year) & (R=0)) Add additional-value to balance-month multiply month-counter by months-in-year

我用COBOL编写代码,在添加下面列出的if语句之后,我不断得到 " 在“000 main”段中: 错误:语法错误,如果出现意外错误“

在我添加下面的if语句之前,一切都很好

          if ( (num-months> months-in-year) & (R=0))
             Add additional-value to balance-month

          multiply month-counter by months-in-year 

          add interest-month to balance-month rounded
          perform 400-process-interest
          perform 310-print-values
          display blank-line
       end-perform

我的编译器抱怨缺少
end if
,并且不喜欢&。我以显而易见的方式解决了问题

之后插入
end if
,将附加值添加到余额月
似乎产生了一个干净的编译。当然,最后的
结束表演需要一个句号

结束表演


我怀疑您的编译器正在生成该消息,因为您的
if
语句格式不正确。

我的编译器抱怨缺少
end if
并且不喜欢&。我以显而易见的方式解决了问题

之后插入
end if
,将附加值添加到余额月
似乎产生了一个干净的编译。当然,最后的
结束表演需要一个句号

结束表演


我怀疑您的编译器正在生成该消息,因为您的
if
语句格式不正确。

我没有编译您的代码

您缺少IF语句的END-IF。 你也应该在你的程序里放一个“停跑”。 例如

 perform until month-counter = num-months
      add 1 to month-counter

      Divide month-counter By months-in-year Giving Q Remainder R
      if ( (num-months> months-in-year) & (R=0))
         Add additional-value to balance-month
      end-if ******* <- YOU NEED THIS
      multiply month-counter by months-in-year 

      add interest-month to balance-month rounded
      perform 400-process-interest
      perform 310-print-values
      display blank-line
   end-perform
  STOP RUN. *** <- THIS WOULD BE NICE AS WELL.
执行至月计数器=月数
将1添加到月份计数器
将月份计数器除以年份中的月份,得到Q余数R
如果((月份数>年度月份数)和(R=0))
每月向余额中添加附加值

如果我没有编译您的代码,则结束

您缺少IF语句的END-IF。 你也应该在你的程序里放一个“停跑”。 例如

 perform until month-counter = num-months
      add 1 to month-counter

      Divide month-counter By months-in-year Giving Q Remainder R
      if ( (num-months> months-in-year) & (R=0))
         Add additional-value to balance-month
      end-if ******* <- YOU NEED THIS
      multiply month-counter by months-in-year 

      add interest-month to balance-month rounded
      perform 400-process-interest
      perform 310-print-values
      display blank-line
   end-perform
  STOP RUN. *** <- THIS WOULD BE NICE AS WELL.
执行至月计数器=月数
将1添加到月份计数器
将月份计数器除以年份中的月份,得到Q余数R
如果((月份数>年度月份数)和(R=0))
每月向余额中添加附加值

如果******对于支持它的编译器,
&
是串联运算符,则结束。你不能只是编语法。为你的编译器准备一本手册。只需提到,不使用空格来限定符号会使代码看起来非常松散。
Divide
超出了固定格式COBOL的有效列。这和
IF
中的
&
都是问题所在,尽管在IF中似乎有一些编译器支持
&
。从缩进中可以看到一个'END-IF',但由于它是可选的,所以它不是编译错误(尽管几乎可以肯定是一个逻辑错误)。对于支持它的编译器,
&
是一个串联运算符。你不能只是编语法。为你的编译器准备一本手册。只需提到,不使用空格来限定符号会使代码看起来非常松散。
Divide
超出了固定格式COBOL的有效列。这和
IF
中的
&
都是问题所在,尽管在IF中似乎有一些编译器支持
&
。从缩进中,您希望看到一个'END-IF',但由于它是可选的,所以它不是一个编译错误(尽管几乎可以肯定是一个逻辑错误)。您使用了哪种编译器支持and的
&
?这是不标准的。您是以固定格式还是自由格式编译的?既然你看不到整个程序,你怎么会认为缺少了一个
停止运行
END-IF
是可选的,因此尽管它可能需要一个,但从缩进来看,它不会导致编译错误。您使用了哪种编译器支持和的
&
?这是不标准的。您是以固定格式还是自由格式编译的?既然你看不到整个程序,你怎么会认为缺少了一个
停止运行
END-IF
是可选的,因此尽管它可能需要一个,但从缩进来看,它不会导致编译错误。