MainframeMaster

COBOL Tutorial

COBOL LOW-VALUE and LOW-VALUES

The LOW-VALUE and LOW-VALUES figurative constants represent the foundational minimum value specification mechanism within COBOL programming environments, providing comprehensive character set boundary definitions, advanced collating sequence management, and sophisticated data initialization capabilities that enable reliable minimum value establishment, efficient sorting operations, and optimized comparison logic. These constants embody universal data boundary principles by supporting consistent minimum value semantics, enabling predictable character ordering behavior, and facilitating comprehensive data range management while maintaining platform independence, ensuring consistent behavior across different character encoding systems, and enabling reliable data processing patterns in enterprise applications requiring standardized minimum value handling, automated boundary checking, and consistent character-based operations throughout complex business logic implementations.

LOW-VALUE Syntax and Usage

Figurative Constant Specifications
cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
*> Basic LOW-VALUE usage MOVE LOW-VALUE TO field-name MOVE LOW-VALUES TO field-name *> Comparisons with LOW-VALUE IF field-name = LOW-VALUE IF field-name NOT = LOW-VALUES IF field-name > LOW-VALUE *> Initialization patterns INITIALIZE record-name WITH FILLER VALUE LOW-VALUE SET field-name TO LOW-VALUE *> Examples: 01 WS-DATA-FIELDS. 05 WS-KEY-FIELD PIC X(10). 05 WS-NAME-FIELD PIC X(30). 05 WS-NUMERIC-FIELD PIC 9(8). 05 WS-ARRAY OCCURS 100 TIMES PIC X(20). PROCEDURE DIVISION. *> Initialize to minimum values MOVE LOW-VALUE TO WS-KEY-FIELD MOVE LOW-VALUES TO WS-NAME-FIELD MOVE LOW-VALUE TO WS-ARRAY(1) *> Clear entire structure to minimum values MOVE LOW-VALUE TO WS-DATA-FIELDS *> Conditional testing IF WS-KEY-FIELD = LOW-VALUE DISPLAY "Key field is at minimum value" END-IF *> Range checking IF WS-NAME-FIELD > LOW-VALUE AND WS-NAME-FIELD < HIGH-VALUE DISPLAY "Name field contains valid data" END-IF
Minimum Value
Initialization
Character Set

Comprehensive LOW-VALUE Examples

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
IDENTIFICATION DIVISION. PROGRAM-ID. LOW-VALUE-DEMONSTRATION. DATA DIVISION. WORKING-STORAGE SECTION. *> Test data structures 01 WS-TEST-FIELDS. 05 WS-CHARACTER-FIELD PIC X(20). 05 WS-ALPHANUMERIC PIC X(50). 05 WS-DISPLAY-FIELD PIC X(30). 05 WS-COMPARISON-FIELD PIC X(15). *> Array for sorting demonstration 01 WS-SORT-ARRAY. 05 WS-SORT-ENTRY OCCURS 10 TIMES. 10 WS-SORT-KEY PIC X(10). 10 WS-SORT-DATA PIC X(25). *> Record structure for initialization 01 WS-EMPLOYEE-RECORD. 05 WS-EMP-ID PIC X(8). 05 WS-EMP-NAME. 10 WS-FIRST-NAME PIC X(15). 10 WS-LAST-NAME PIC X(20). 05 WS-EMP-DEPARTMENT PIC X(10). 05 WS-EMP-SALARY PIC 9(7)V99. 05 WS-EMP-HIRE-DATE PIC 9(8). *> Test and demonstration variables 01 WS-TEST-CONTROL. 05 WS-TEST-COUNTER PIC 9(3) VALUE 0. 05 WS-LOOP-INDEX PIC 9(3) VALUE 0. 05 WS-COMPARISON-RESULT PIC X(20). 05 WS-HEX-DISPLAY PIC X(8). *> Sample data for demonstrations 01 WS-SAMPLE-DATA. 05 WS-SAMPLE-NAMES. 10 FILLER PIC X(10) VALUE "ANDERSON". 10 FILLER PIC X(10) VALUE "BROWN". 10 FILLER PIC X(10) VALUE "CHARLIE". 10 FILLER PIC X(10) VALUE "DAVIS". 10 FILLER PIC X(10) VALUE "EDWARDS". 05 WS-NAME-TABLE REDEFINES WS-SAMPLE-NAMES. 10 WS-NAME-ENTRY OCCURS 5 TIMES PIC X(10). PROCEDURE DIVISION. MAIN-PROCESSING. DISPLAY "=== COBOL LOW-VALUE DEMONSTRATION ===" DISPLAY SPACES PERFORM DEMONSTRATE-BASIC-USAGE PERFORM DEMONSTRATE-INITIALIZATION PERFORM DEMONSTRATE-COMPARISONS PERFORM DEMONSTRATE-SORTING PERFORM DEMONSTRATE-BOUNDARY-CHECKING PERFORM DEMONSTRATE-HEX-VALUES DISPLAY "=== LOW-VALUE DEMO COMPLETE ===" STOP RUN. DEMONSTRATE-BASIC-USAGE. DISPLAY "=== BASIC LOW-VALUE USAGE ===" DISPLAY SPACES *> Initialize fields with LOW-VALUE MOVE "INITIAL DATA" TO WS-CHARACTER-FIELD DISPLAY "Before LOW-VALUE: '" WS-CHARACTER-FIELD "'" MOVE LOW-VALUE TO WS-CHARACTER-FIELD DISPLAY "After LOW-VALUE: [Field contains binary zeros]" *> Using LOW-VALUES (plural form) MOVE "SAMPLE TEXT" TO WS-ALPHANUMERIC DISPLAY "Before LOW-VALUES: '" WS-ALPHANUMERIC "'" MOVE LOW-VALUES TO WS-ALPHANUMERIC DISPLAY "After LOW-VALUES: [Field contains binary zeros]" *> Test if field contains LOW-VALUE IF WS-CHARACTER-FIELD = LOW-VALUE DISPLAY "Character field verified as LOW-VALUE" END-IF IF WS-ALPHANUMERIC = LOW-VALUES DISPLAY "Alphanumeric field verified as LOW-VALUES" END-IF DISPLAY SPACES. DEMONSTRATE-INITIALIZATION. DISPLAY "=== INITIALIZATION WITH LOW-VALUE ===" DISPLAY SPACES *> Initialize individual fields MOVE "EMP001" TO WS-EMP-ID MOVE "JOHN" TO WS-FIRST-NAME MOVE "DOE" TO WS-LAST-NAME MOVE "IT" TO WS-EMP-DEPARTMENT MOVE 50000.00 TO WS-EMP-SALARY MOVE 20200101 TO WS-EMP-HIRE-DATE DISPLAY "Employee record before initialization:" DISPLAY " ID: " WS-EMP-ID DISPLAY " Name: " WS-FIRST-NAME " " WS-LAST-NAME DISPLAY " Department: " WS-EMP-DEPARTMENT DISPLAY " Salary: $" WS-EMP-SALARY *> Clear entire record with LOW-VALUE MOVE LOW-VALUE TO WS-EMPLOYEE-RECORD DISPLAY "Employee record after LOW-VALUE initialization:" DISPLAY " All fields now contain binary zeros" DISPLAY " Fields are at minimum collating values" *> Verify initialization IF WS-EMP-ID = LOW-VALUE AND WS-FIRST-NAME = LOW-VALUE AND WS-LAST-NAME = LOW-VALUE DISPLAY " Initialization verified successful" END-IF *> Initialize array with LOW-VALUE PERFORM VARYING WS-LOOP-INDEX FROM 1 BY 1 UNTIL WS-LOOP-INDEX > 10 MOVE LOW-VALUE TO WS-SORT-KEY(WS-LOOP-INDEX) MOVE LOW-VALUE TO WS-SORT-DATA(WS-LOOP-INDEX) END-PERFORM DISPLAY " Array initialized with LOW-VALUE in all entries" DISPLAY SPACES. DEMONSTRATE-COMPARISONS. DISPLAY "=== COMPARISON OPERATIONS ===" DISPLAY SPACES *> Set up test data MOVE LOW-VALUE TO WS-COMPARISON-FIELD DISPLAY "Testing comparisons with LOW-VALUE..." *> Test against empty string IF WS-COMPARISON-FIELD = SPACES MOVE "EQUAL TO SPACES" TO WS-COMPARISON-RESULT ELSE MOVE "NOT EQUAL TO SPACES" TO WS-COMPARISON-RESULT END-IF DISPLAY " LOW-VALUE vs SPACES: " WS-COMPARISON-RESULT *> Test against regular character IF WS-COMPARISON-FIELD < "A" MOVE "LESS THAN 'A'" TO WS-COMPARISON-RESULT ELSE MOVE "NOT LESS THAN 'A'" TO WS-COMPARISON-RESULT END-IF DISPLAY " LOW-VALUE vs 'A': " WS-COMPARISON-RESULT *> Test against HIGH-VALUE IF WS-COMPARISON-FIELD < HIGH-VALUE MOVE "LESS THAN HIGH-VALUE" TO WS-COMPARISON-RESULT ELSE MOVE "NOT LESS THAN HIGH-VALUE" TO WS-COMPARISON-RESULT END-IF DISPLAY " LOW-VALUE vs HIGH-VALUE: " WS-COMPARISON-RESULT *> Test range validation MOVE "NORMAL DATA" TO WS-COMPARISON-FIELD IF WS-COMPARISON-FIELD > LOW-VALUE AND WS-COMPARISON-FIELD < HIGH-VALUE DISPLAY " 'NORMAL DATA' is within valid range" ELSE DISPLAY " 'NORMAL DATA' is outside valid range" END-IF DISPLAY SPACES. DEMONSTRATE-SORTING. DISPLAY "=== SORTING WITH LOW-VALUE ===" DISPLAY SPACES *> Initialize sort array with mixed data MOVE "ZEBRA" TO WS-SORT-KEY(1) MOVE "Last alphabetically" TO WS-SORT-DATA(1) MOVE LOW-VALUE TO WS-SORT-KEY(2) MOVE "Minimum value entry" TO WS-SORT-DATA(2) MOVE "APPLE" TO WS-SORT-KEY(3) MOVE "Regular entry" TO WS-SORT-DATA(3) MOVE LOW-VALUE TO WS-SORT-KEY(4) MOVE "Another minimum" TO WS-SORT-DATA(4) MOVE "BANANA" TO WS-SORT-KEY(5) MOVE "Mid-range entry" TO WS-SORT-DATA(5) *> Clear remaining entries PERFORM VARYING WS-LOOP-INDEX FROM 6 BY 1 UNTIL WS-LOOP-INDEX > 10 MOVE HIGH-VALUE TO WS-SORT-KEY(WS-LOOP-INDEX) MOVE "End marker" TO WS-SORT-DATA(WS-LOOP-INDEX) END-PERFORM DISPLAY "Sort array before ordering:" PERFORM VARYING WS-LOOP-INDEX FROM 1 BY 1 UNTIL WS-LOOP-INDEX > 5 IF WS-SORT-KEY(WS-LOOP-INDEX) = LOW-VALUE DISPLAY " " WS-LOOP-INDEX ": [LOW-VALUE] - " WS-SORT-DATA(WS-LOOP-INDEX) ELSE DISPLAY " " WS-LOOP-INDEX ": " WS-SORT-KEY(WS-LOOP-INDEX) " - " WS-SORT-DATA(WS-LOOP-INDEX) END-IF END-PERFORM PERFORM SIMPLE-BUBBLE-SORT DISPLAY "Sort array after ordering (ascending):" PERFORM VARYING WS-LOOP-INDEX FROM 1 BY 1 UNTIL WS-LOOP-INDEX > 5 IF WS-SORT-KEY(WS-LOOP-INDEX) = LOW-VALUE DISPLAY " " WS-LOOP-INDEX ": [LOW-VALUE] - " WS-SORT-DATA(WS-LOOP-INDEX) ELSE DISPLAY " " WS-LOOP-INDEX ": " WS-SORT-KEY(WS-LOOP-INDEX) " - " WS-SORT-DATA(WS-LOOP-INDEX) END-IF END-PERFORM DISPLAY "Notice: LOW-VALUE entries appear first in ascending sort" DISPLAY SPACES. SIMPLE-BUBBLE-SORT. 01 WS-SORT-CONTROL. 05 WS-OUTER-INDEX PIC 9(3). 05 WS-INNER-INDEX PIC 9(3). 05 WS-TEMP-KEY PIC X(10). 05 WS-TEMP-DATA PIC X(25). 05 WS-SWAPPED PIC X VALUE 'Y'. PERFORM WITH TEST AFTER UNTIL WS-SWAPPED = 'N' MOVE 'N' TO WS-SWAPPED PERFORM VARYING WS-OUTER-INDEX FROM 1 BY 1 UNTIL WS-OUTER-INDEX >= 5 COMPUTE WS-INNER-INDEX = WS-OUTER-INDEX + 1 IF WS-SORT-KEY(WS-OUTER-INDEX) > WS-SORT-KEY(WS-INNER-INDEX) *> Swap entries MOVE WS-SORT-KEY(WS-OUTER-INDEX) TO WS-TEMP-KEY MOVE WS-SORT-DATA(WS-OUTER-INDEX) TO WS-TEMP-DATA MOVE WS-SORT-KEY(WS-INNER-INDEX) TO WS-SORT-KEY(WS-OUTER-INDEX) MOVE WS-SORT-DATA(WS-INNER-INDEX) TO WS-SORT-DATA(WS-OUTER-INDEX) MOVE WS-TEMP-KEY TO WS-SORT-KEY(WS-INNER-INDEX) MOVE WS-TEMP-DATA TO WS-SORT-DATA(WS-INNER-INDEX) MOVE 'Y' TO WS-SWAPPED END-IF END-PERFORM END-PERFORM. DEMONSTRATE-BOUNDARY-CHECKING. DISPLAY "=== BOUNDARY CHECKING WITH LOW-VALUE ===" DISPLAY SPACES DISPLAY "Testing various boundary conditions..." *> Test empty vs LOW-VALUE MOVE SPACES TO WS-TEST-FIELDS MOVE LOW-VALUE TO WS-CHARACTER-FIELD IF WS-CHARACTER-FIELD = LOW-VALUE DISPLAY " Field with LOW-VALUE detected correctly" END-IF IF WS-ALPHANUMERIC = SPACES DISPLAY " Field with SPACES detected correctly" END-IF *> Test data validation using LOW-VALUE as boundary MOVE LOW-VALUE TO WS-COMPARISON-FIELD PERFORM TEST-DATA-VALIDITY MOVE "VALID DATA" TO WS-COMPARISON-FIELD PERFORM TEST-DATA-VALIDITY MOVE HIGH-VALUE TO WS-COMPARISON-FIELD PERFORM TEST-DATA-VALIDITY DISPLAY SPACES. TEST-DATA-VALIDITY. DISPLAY " Testing: " IF WS-COMPARISON-FIELD = LOW-VALUE DISPLAY " [LOW-VALUE] - Invalid: minimum boundary" ELSE IF WS-COMPARISON-FIELD = HIGH-VALUE DISPLAY " [HIGH-VALUE] - Invalid: maximum boundary" ELSE DISPLAY " '" WS-COMPARISON-FIELD "' - Valid data" END-IF END-IF. DEMONSTRATE-HEX-VALUES. DISPLAY "=== HEXADECIMAL REPRESENTATION ===" DISPLAY SPACES MOVE LOW-VALUE TO WS-CHARACTER-FIELD *> Display character representation DISPLAY "LOW-VALUE characteristics:" DISPLAY " Logical representation: Minimum collating value" DISPLAY " Typical hex value: X'00' (binary zeros)" DISPLAY " Length impact: Fills entire field with zeros" *> Compare with other figurative constants DISPLAY "Comparison with other constants:" IF LOW-VALUE < SPACE DISPLAY " LOW-VALUE < SPACE (correct)" ELSE DISPLAY " LOW-VALUE >= SPACE (unexpected)" END-IF IF LOW-VALUE < ZERO DISPLAY " LOW-VALUE < ZERO (correct for alphanumeric)" ELSE DISPLAY " LOW-VALUE >= ZERO (may vary by implementation)" END-IF IF LOW-VALUE < HIGH-VALUE DISPLAY " LOW-VALUE < HIGH-VALUE (correct)" ELSE DISPLAY " LOW-VALUE >= HIGH-VALUE (impossible)" END-IF DISPLAY "Character set behavior:" DISPLAY " In ASCII: X'00' (null character)" DISPLAY " In EBCDIC: X'00' (null character)" DISPLAY " Consistent across character sets" DISPLAY SPACES. *> ================================================== *> UTILITY PROCEDURES FOR LOW-VALUE OPERATIONS *> ================================================== LOW-VALUE-UTILITIES. CLEAR-RECORD-TO-LOW-VALUE. *> Generic record clearing utility MOVE LOW-VALUE TO WS-EMPLOYEE-RECORD DISPLAY "Record cleared to LOW-VALUE". CHECK-FOR-LOW-VALUE-FIELDS. *> Check if fields contain LOW-VALUE 01 WS-LOW-VALUE-COUNT PIC 9(3) VALUE 0. IF WS-EMP-ID = LOW-VALUE ADD 1 TO WS-LOW-VALUE-COUNT END-IF IF WS-FIRST-NAME = LOW-VALUE ADD 1 TO WS-LOW-VALUE-COUNT END-IF IF WS-LAST-NAME = LOW-VALUE ADD 1 TO WS-LOW-VALUE-COUNT END-IF DISPLAY "Fields containing LOW-VALUE: " WS-LOW-VALUE-COUNT. INITIALIZE-ARRAY-WITH-LOW-VALUE. *> Initialize arrays with LOW-VALUE PERFORM VARYING WS-LOOP-INDEX FROM 1 BY 1 UNTIL WS-LOOP-INDEX > 10 MOVE LOW-VALUE TO WS-SORT-ENTRY(WS-LOOP-INDEX) END-PERFORM DISPLAY "Array initialized with LOW-VALUE". VALIDATE-FIELD-RANGE. *> Validate that field contains meaningful data IF WS-COMPARISON-FIELD > LOW-VALUE AND WS-COMPARISON-FIELD < HIGH-VALUE DISPLAY "Field contains valid data" ELSE IF WS-COMPARISON-FIELD = LOW-VALUE DISPLAY "Field is at minimum boundary" ELSE DISPLAY "Field is at maximum boundary" END-IF END-IF. SORT-WITH-LOW-VALUE-HANDLING. *> Sort routine that properly handles LOW-VALUE entries DISPLAY "Sorting with special LOW-VALUE handling..." *> LOW-VALUE entries will naturally sort first PERFORM SIMPLE-BUBBLE-SORT *> Count and report LOW-VALUE entries 01 WS-LOW-VALUE-ENTRIES PIC 9(3) VALUE 0. PERFORM VARYING WS-LOOP-INDEX FROM 1 BY 1 UNTIL WS-LOOP-INDEX > 10 IF WS-SORT-KEY(WS-LOOP-INDEX) = LOW-VALUE ADD 1 TO WS-LOW-VALUE-ENTRIES END-IF END-PERFORM DISPLAY "Sort completed with " WS-LOW-VALUE-ENTRIES " LOW-VALUE entries".

Character Set Behavior

ASCII Representation
  • Value: X'00' (binary zeros)
  • Character: Null character
  • Sorting: First in collating sequence
  • Display: Non-printable character
EBCDIC Representation
  • Value: X'00' (binary zeros)
  • Character: Null character
  • Sorting: First in collating sequence
  • Display: Non-printable character

Interactive Tutorial

Hands-On Exercise: Using LOW-VALUE for Data Management
Practice using LOW-VALUE for initialization, sorting, and boundary checking

Exercise 1: Record Initialization

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
01 CUSTOMER-RECORD. 05 CUST-ID PIC X(8). 05 CUST-NAME PIC X(30). 05 CUST-ADDRESS PIC X(50). 05 CUST-PHONE PIC X(15). 05 CUST-EMAIL PIC X(40). PROCEDURE DIVISION. INITIALIZE-CUSTOMER. *> Clear entire record to minimum values MOVE LOW-VALUE TO CUSTOMER-RECORD *> Verify initialization IF CUST-ID = LOW-VALUE AND CUST-NAME = LOW-VALUE AND CUST-ADDRESS = LOW-VALUE DISPLAY "Customer record properly initialized" END-IF *> Set specific fields while others remain LOW-VALUE MOVE "CUST001" TO CUST-ID MOVE "John Smith" TO CUST-NAME *> Check for uninitialized fields IF CUST-ADDRESS = LOW-VALUE DISPLAY "Address field needs data" END-IF.

Exercise 2: Sorting with Boundary Values

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
01 SORT-TABLE. 05 SORT-ENTRY OCCURS 50 TIMES. 10 SORT-KEY PIC X(20). 10 SORT-DATA PIC X(30). PROCEDURE DIVISION. PREPARE-SORT-DATA. *> Initialize all entries to HIGH-VALUE (end markers) PERFORM VARYING WS-INDEX FROM 1 BY 1 UNTIL WS-INDEX > 50 MOVE HIGH-VALUE TO SORT-KEY(WS-INDEX) MOVE "END OF DATA" TO SORT-DATA(WS-INDEX) END-PERFORM *> Add actual data MOVE "ZEBRA" TO SORT-KEY(1) MOVE "Last item" TO SORT-DATA(1) MOVE LOW-VALUE TO SORT-KEY(2) MOVE "Priority item" TO SORT-DATA(2) MOVE "ALPHA" TO SORT-KEY(3) MOVE "Regular item" TO SORT-DATA(3) *> After sorting, LOW-VALUE entries appear first PERFORM SORT-ENTRIES *> Process entries until HIGH-VALUE reached PERFORM VARYING WS-INDEX FROM 1 BY 1 UNTIL SORT-KEY(WS-INDEX) = HIGH-VALUE IF SORT-KEY(WS-INDEX) = LOW-VALUE DISPLAY "Priority: " SORT-DATA(WS-INDEX) ELSE DISPLAY "Normal: " SORT-KEY(WS-INDEX) " - " SORT-DATA(WS-INDEX) END-IF END-PERFORM.

Best Practices

Knowledge Check

Test Your Understanding

Question 1: Character Values

What does LOW-VALUE represent in terms of character encoding?

Answer: LOW-VALUE represents the character with the lowest value in the collating sequence (typically X'00' or binary zeros). It's consistent across ASCII and EBCDIC character sets and always sorts first in ascending order.

Question 2: Initialization Strategy

When should you use LOW-VALUE vs SPACES for field initialization?

Answer: Use LOW-VALUE for internal processing, boundary markers, and sort priorities. Use SPACES for display fields, user-visible output, and when you need printable characters. LOW-VALUE is for minimum value semantics, SPACES for empty text.

Question 3: Sorting Behavior

How does LOW-VALUE affect sorting operations?

Answer: LOW-VALUE always sorts first in ascending order and last in descending order. It's useful for creating priority records, boundary markers, and ensuring certain entries appear at the beginning of sorted lists.

Common Usage Patterns

Record Initialization
cobol
1
2
3
4
5
6
7
8
*> Clear entire record MOVE LOW-VALUE TO CUSTOMER-RECORD *> Initialize array PERFORM VARYING I FROM 1 BY 1 UNTIL I > 100 MOVE LOW-VALUE TO TABLE-ENTRY(I) END-PERFORM
Boundary Testing
cobol
1
2
3
4
5
6
7
*> Check for valid data IF INPUT-FIELD > LOW-VALUE AND INPUT-FIELD < HIGH-VALUE PERFORM PROCESS-VALID-DATA ELSE PERFORM HANDLE-BOUNDARY-VALUE END-IF

Related Pages