我正在对Cobol图片进行一些测试,并想知道---
是否是有效图片。我是否正确地说这张图片接受-99到+99范围内的值。如果它有效,那么图片可以接受3个空格作为值吗?
例如:
12将返回12
1将返回1
干杯
答案 0 :(得分:3)
是---
是有效的PICTURE
条款。与此PICTURE
对应的变量将接受-99到+99范围内的数值赋值。它不能分配非数字(例如空格)。但是,如果在为其指定数值后将DISPLAY
变为MOVE ZERO
,则前导零将替换为空格。因此,如果您对此项目DISPLAY
,则MOVE SPACES
仅限空格。尝试PICTURE
此项将导致编译错误(不兼容的数据类型)。这最后一点可能看起来有点反直觉,但请记住,这种类型的USAGE
子句意味着显示USAGE DISPLAY
- 基本上以这种方式定义的项目用于'漂亮打印'数字。关于您可以使用MOVE
项目执行的唯一操作是DISPLAY
来往或来自PICTURE
。
编辑 - 对评论的回应
---X(2)
的{{1}}无效。下图说明了符号可能出现在PICTURE
字符串中的组合和顺序。请注意,括号不在图表中。从逻辑上讲,您可以在读取字符串之前用相应的前一个字符的出现次数替换它们。例如,X(3)
读为XXX
。如果您确实想要正确解析PICTURE
字符串,可以使用此图表专门为它们构建BNF语法。
答案 1 :(得分:0)
如果这是一张数字图片,它将不接受空格。