If statement COBOL程序中出现语法错误,如果
我用COBOL编写代码,在添加下面列出的if语句之后,我不断得到 " 在“000 main”段中: 错误:语法错误,如果出现意外错误“ 在我添加下面的if语句之前,一切都很好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
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
是可选的,因此尽管它可能需要一个,但从缩进来看,它不会导致编译错误。