在COBOL中,最好的创建键-值'dict”的方法是使用表。我们可以使用两个表来实现这一目标:键表和值表。键表存储键值,值表存储与键相关联的值。可以使用有效的键来检索与其相关联的值。 以下是一个示例程序,用于创建并使用键值表:
IDENTIFICATION DIVISION. PROGRAM-ID. KEY-VALUE-TABLE.
DATA DIVISION. WORKING-STORAGE SECTION. 01 KEY-TABLE. 05 KEY-ENTRY OCCURS 10 TIMES. 10 KEY. 15 KEY-LENGTH PIC S9(4) COMP. 10 KEY-VALUE PIC X(10).
01 VALUE-TABLE. 05 VALUE-ENTRY OCCURS 10 TIMES. 10 VALUE. 15 VALUE-LENGTH PIC S9(4) COMP. 10 VALUE-VALUE PIC X(50).
PROCEDURE DIVISION. MAIN-PROCEDURE.
INITIALIZE KEY-TABLE VALUE " ". INITIALIZE VALUE-TABLE VALUE " ".
PERFORM ADD-TO-TABLE("Key1","Value1"). PERFORM ADD-TO-TABLE("Key2","Value2").
PERFORM RETRIEVE-FROM-TABLE("Key1"). PERFORM RETRIEVE-FROM-TABLE("Key3").
STOP RUN.
ADD-TO-TABLE PROCEDURE. ACCEPT ARGUMENT-KEY VALUE. ACCEPT ARGUMENT-VALUE VALUE.
SET KEY-TABLE(INDEX) TO ARGUMENT-KEY. SET VALUE-TABLE(INDEX) TO ARGUMENT-VALUE.
ADD 1 TO INDEX.
RETRIEVE-FROM-TABLE PROCEDURE. ACCEPT ARGUMENT-KEY VALUE.
PERFORM VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER GREATER THAN 10 IF KEY-TABLE(COUNTER) = ARGUMENT-KEY DISPLAY "VALUE FOR KEY " ARGUMENT-KEY "IS " VALUE-TABLE(COUNTER) EXIT PERFORM END-IF END-PERFORM
IF COUNTER > 10
上一篇:BestTimetoBuyandSellStock的时间复杂度是多少?
下一篇:BestwaytogetarotatingSecretsManagersecrettoParameterStore