CHAPTER 5 过程部之二一。MOVE 语句的较高技巧?1。各种类型数据之间的传送规则见下表:(Y:表示合法传送。N:表
CHAPTER 5 过程部之二
一。MOVE 语句的较高技巧
?1。各种类型数据之间的传送规则见下表:(Y:表示合法传送。N:表示非法传送。空白:表示某些时候是合法的。)?
?
?
接收项
数值型
数值型
数值编辑型
字母型
字符型
字符编辑型
组合项
发送项
整数
非整数
?
?
?
?
?
数值型整数
Y
Y
Y
N
Y
Y
Y
数值型非整数
Y
Y
Y
N
N
N
Y
数值编辑型
Y
Y
Y
N
Y
Y
Y
字母型
N
N
N
Y
Y
Y
Y
字符型
?
?
?
?
Y
Y
Y
字符编辑型
N
N
N
N
Y
Y
Y
数值常量
Y
Y
Y
N
N
N
Y
非数值常量
N
N
N
Y
Y
Y
Y
ZERO
Y
Y
Y
N
Y
Y
Y
SPACE
N
N
N
Y
Y
Y
Y
组合项
?
?
?
?
Y
Y
Y
?
2。用CORRESPONDING子句的传送 —— 对应传送(同名传送)?
?????? 对应传送的一般格式:?
?MOVE???????? CORRESPONDING???????????? 标识符1?????? TO??????? 标识符2?
????????????????????? CORR?
?????? 说明:(1)如果两个组合项中包括的项不同,则只传送同名的项。?
?????????????????? (2)传送的两者间必须有成对的同名数据项,而且这一对中必须至少有一个项是?
??????????? 初等项。否则不能作为对应项传送。?
?????????????????? (3)所谓同名,指的是它们有相同的全程受限,即全程同名。?????????
?假如T1和T2的描述分别为:?
?01???????? T1。??01???????? T2。?
??????? 02? X。??????? 02??? X。?
????????????? 03? X1。。。????????????? ??03???? X2。。。?
????????????? 03? X3。。。??????????????????????????????????? 03???? X1。。。?
??????? 02? Y1。??????? 02??? Y。???????
????????????? 03? A1。。。?????????????? ??03????? A1。。。?
?则T1中的A1与T2中的A1就不是全程同名。?
4。除法语句中的余数语句(REMAINDER 子句):DIVIDE 语句只能求商不能求余数。如想求余数,可用?????? REMAINDER 子句。?
?如:? DIVIDE??????? A??????? INTO????? B??????????? GIVING?????? C???????? REMAINDER???????????? D?
????? 注意:(1)商和余数的值不仅取决于除数和被除数,还取决于数据部中对商和余数的描述。?
????????????????? (2)如用ROUNDED子句,它只对商起作用,余数不作四舍五入处理,在计算余?
?????????? 数时,仍按四舍五入前的值为准。?
?? (3) 长度溢出也只检查商的值是否溢出,而不检查余数。?
三。IF语句的较高技巧?
?1。符号条件:?
?数据名?????? IS? [NOT]????????? POSITIVE?
?算术表达式?????????????? NEGATIVE?
???????????????? ZERO?
2。类型条件:?
?标识符?IS??????? [NOT]??? NUMERIC?
?????????? ALPHABETIC?
3。条件名条件:用来表示条件变量当前值的名字叫条件名。条件名本身是一个条件,它有一个值(‘真’或‘假’),用它来检查条件变量的值是否落在条件名所代表的值的范围中,当条件变量的值落在条件名所代表的值的范围中,则此条件名所表示的条件为‘真’,否则为‘假’。?
?条件名条件的一般格式:?
?88?????????? 条件名??????? {? VALUE????? IS}??????? 常量1??????? [{THRU}????? 常量2]?
???????????????? [常量3?????? [ [{THRU}????? 常量4]] 。。。]?
?????????????? ?如:?02????? WS-FILE-STATUS?????? PIC????? 9(2)。?
??????????? 88???????? WS-FILE-NORMAL????????? VALUE? 0,93。???????
??????????? 88???????? WS-FILE-EOF?????????? VALUE? 10。?