OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-51 
6.18.
EXIT 
Figure 6-53 - EXIT Syntax 
The EXIT statement is a multi-purpose statement; it may 
provide a common end point for a series of procedures, 
exit an inline PERFORM, a paragraph or a section or it 
may mark the logical end of a called program. 
1.
When used without any of the optional clauses, the 
͞EXIT͟ statement simply provides a common ͞GO 
TO͟ end point for a series of procedures.  Figure 6-54
illustrates the use of the EXIT statement.   
2.
When an EXIT statement is used, it must be the only 
statement in the paragraph in which it occurs. 
3.
The EXIT statement is a no-operation statement 
(much like the CONTINUE statement). 
Figure 6-54 - Using the EXIT Statement 
4.
An EXIT PARAGRAPH statement transfers control to a point immediately past the end of the current paragraph, 
while an EXIT SECTION statement causes control to pass to point immediately past the last paragraph in the 
current section. 
If the EXIT PARAGRAPH or EXIT SECTION resides in a 
paragraph within the scope of a procedural 
PERFORM (section 6.32.1
), control will be returned 
back to the PERFORM for evaluation of any TIMES, 
VARYING and/or UNTIL clauses.  It the EXIT 
PARAGRAPH or EXIST SECTION resides outside the 
scope of a procedural PERFORM, control simply 
transfers to the first executable statement in the 
next paragraph (EXIT PARAGRAPH) or section (EXIT 
SECTION). 
Figure 6-55
shows how the example shown in Figure 
6-54
could have been coded without a GO TO by 
utilizing an EXIT PARAGRAPH statement. 
Figure 6-55 - Using EXIT PARAGRAPH 
5.
The EXIT PERFORM and EXIT PERFORM CYCLE statements are intended to be used in conjunction with an inline 
PERFORM statement (section 6.32.2
). 
6.
An EXIT PERFORM CYCLE will terminate the current iteration of the inline PERFORM, giving control to any TIMES, 
VARYING and/or UNTIL clauses for them to determine if another cycle needs to be performed.  
7.
An EXIT PERFORM will terminate the inline PERFORM 
outright, transferring control to the first statement 
following the PERFORM.  Figure 6-56
shows the final 
modification to the Figure 6-54
example; by using 
Inline PERFORM and EXIT PERFORM statements we 
can really
streamline processing. 
Figure 6-56 - Using the EXIT PERFORM Statement 
EXIT
PROGRAM
PERFORM
[ CYCLE
]
SECTION
PARAGRAPH
01  Switches.
05 Input-File-Switch    PIC X(1).
88 EOF-On-Input-File VALUE „Y‟ FALSE „N‟.
.
.
.
SET EOF-On-Input-File TO FALSE.
PERFORM 100-Process-A-Transaction
UNTIL EOF-On-Input-File.
.
.
.
100-Process-A-Transaction.
READ Input-File AT END
SET EOF-On-Input-File TO TRUE
EXIT PARAGRAPH.
IF Input-Rec of Input-File = SPACES
EXIT PARAGRAPH.  *> IGNORE BLANK RECORDS!
process the record just read
01  Switches.
05 Input-File-Switch    PIC X(1).
88 EOF-On-Input-File VALUE „Y‟ FALSE „N‟.
.
.
.
SET EOF-On-Input-File TO FALSE.
PERFORM 100-Process-A-Transaction
UNTIL EOF-On-Input-File.
.
.
.
100-Process-A-Transaction.
READ Input-File AT END
SET EOF-On-Input-File TO TRUE
EXIT PARAGRAPH.
IF Input-Rec of Input-File = SPACES
EXIT PARAGRAPH.  *> IGNORE BLANK RECORDS!
process the record just read
PERFORM FOREVER
READ Input-File AT END
EXIT PERFORM
END-READ
IF Input-Rec of Input-File = SPACES
EXIT PERFORM CYCLE  *> IGNORE BLANK RECORDS!
END-IF
process the record just read
END PERFORM
Pdf sign - C# PDF File Permission Library: add, remove, update PDF file permission in C#.net, ASP.NET, MVC, WPF
Tell C# users how to set PDF file permissions, like printing, copying, modifying, extracting, annotating, form filling, etc
adding signature to pdf; pdf to word converter sign in
Pdf sign - VB.NET PDF File Permission Library: add, remove, update PDF file permission in vb.net, ASP.NET, MVC, WPF
VB.NET Tutorial for How to Set PDF File Access Permissions Using XDoc.PDF for .NET
add signature field to pdf; add signature pdf preview
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-52 
8.
Finally, the EXIT PROGRAM statement terminates the execution of subroutine (i.e.  a program that has been 
CALLed by another), returning to the CALLing program at the statement following the CALL.  If executed by a main 
program, the EXIT PROGRAM statement is non-functional.  The COBOL2002 standard has made a common 
extension to the COBOL language - the GOBACK statement (section 6.21
)  - standard; the GOBACK statement 
should be strongly considered as the preferred alternative to EXIT PROGRAM for new programs. 
C# PDF Digital Signature Library: add, remove, update PDF digital
Use C# Demo to Sign Your PDF Document. Add necessary references: This is a simple C# demo that show you how to sign your PDF document using XDoc.PDF.
pdf will signature; add signature image to pdf
VB.NET PDF Digital Signature Library: add, remove, update PDF
Use VB.NET Demo to Sign Your PDF Document. Add necessary references: This is a simple VB.NET demo that explains how to sign your PDF document using XDoc.PDF.
pdf secure signature; create pdf with signature field
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-53 
6.19.
FREE 
Figure 6-57 - FREE Syntax 
The FREE statement releases memory previously 
allocated to the program by the ALLOCATE statement 
(section 6.6
). 
1.
Identifier-1 must be a USAGE POINTER data item or an 01-level data item with the BASED attribute. 
2.
If identifier-1 is a USAGE POINTER data item and it contains a valid address, the FREE statement will release the 
memory block the pointer references.  In addition, any BASED data items that the pointer was used to provide an 
address for will become un-based and therefore un-usable.  If identifier-1 did not contain a valid address, no 
action will be taken. 
3.
If identifier-1 is a BASED data item and that data item is currently based (meaning it currently has memory 
allocated for it), its memory is released and identifier-1 will become un-based and therefore un-usable.  If 
identifier-1 was not based, no action will be taken. 
4.
The ADDRESS OF clause adds no special function to the FREE statement. 
FREE
{[ ADDRESS
OF ]  identifier-1}...
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
PDF Protection. • Sign PDF document with signature. To view, convert, edit, process, protect, sign PDF files, please refer to XDoc.PDF SDK for .NET overview.
adding signature to pdf form; create transparent signature stamp for pdf
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
View PDF outlines. Related Resources. To view, convert, edit, process, protect, sign PDF files, please refer to XDoc.PDF SDK for .NET overview.
add signature to pdf file; adding signature to pdf file
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-54 
6.20.
GENERATE 
Figure 6-58 - GENERATE Syntax 
Although syntactically recognized by the OpenCOBOL 
compiler, the GENERATE statement is non-functional 
because the RWCS (COBOL Report Writer) is not currently 
supported by OpenCOBOL. 
identifier-1
report-name-1
GENERATE
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PDF
HTML5 Viewer for C# .NET. Related Resources. To view, convert, edit, process, protect, sign PDF files, please refer to XDoc.PDF SDK for .NET overview.
add jpg signature to pdf; create pdf signature field
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Word
users can convert Convert Microsoft Office Word to searchable PDF online, create To view, convert, edit, process, built, sign Word documents, please refer to
adding a signature to a pdf form; add signature pdf
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-55 
6.21.
GOBACK 
Figure 6-59 - GOBACK Syntax 
The GOBACK statement is used to logically terminate an executing program. 
1.
If executed within a subroutine (i.e. a CALLed program), GOBACK will transfer control back to the CALLing 
program, specifically to the statement following the CALL. 
2.
If executed within a main program, GOBACK will act as a STOP RUN statement (section 6.42
). 
GOBACK
XDoc.HTML5 Viewer for .NET, Zero Footprint AJAX Document Image
View, Convert, Edit, Sign Documents and Images. We are dedicated to provide powerful & profession imaging controls, PDF document, image to pdf files and
adding a signature to a pdf file; add signature to pdf
XDoc.HTML5 Viewer for .NET Purchase information
XImage.Raster. Adobe PDF. XDoc.PDF. Scanning. XImage.OCR. Acquisition. XImage.Twain. XDoc.HTML5 Viewer for .NET. View, Convert, Edit, Sign Documents and Images.
add signature to pdf reader; copy and paste signature into pdf
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-56 
6.22.
GO TO 
6.22.1.
GO TO Format 1 – Simple GO TO 
Figure 6-60 - Simple GOTO Syntax 
This form of the GO TO statement unconditionally transfers control in a program 
to the specified procedure-name. 
1.
If the specified procedure name is a SECTION, control will transfer to the first paragraph in that section. 
6.22.2.
GO TO Format 2 – GO TO DEPENDING ON 
Figure 6-61 - GOTO DEPENDING ON Syntax 
This form of the GO TO statement will transfer control to any one of a 
number of specified procedure names depending on the numeric value of 
the identifier specified on the statement. 
1.
The PICTURE and/or USAGE of the specified identifier-1 must be such as to define it as a numeric, unedited, 
preferably unsigned integer data item. 
2.
If the value of identifier-1 has the value 1, control will be transferred to the 1
st
specified procedure name.  If the 
value is 2, control will transfer to the 2
nd
procedure name, etc. 
3.
If the value of identifier-1 is less than 1 or exceeds the total number of procedure names specified on the GO TO 
statement, control will simply fall thru into the next statement following the GO TO.  
4.
The following chart shows how GO TO DEPENDING ON may be used in a real application situation, and compares 
it against the two alternatives – IF and EVALUATE. 
Figure 6-62 - GOTO DEPENDING ON vs IF vs EVALUATE 
GOTO DEPENDING ON 
IF 
EVALUATE 
GO TO PROCESS-ACCT-TYPE-1 
PROCESS-ACCT-TYPE-2 
PROCESS-ACCT-TYPE-3 
DEPENDING ON ACCT-TYPE. 
Code to handle invalid account type 
GO TO DONE-WITH-ACCT-TYPE. 
PROCESS-ACCT-TYPE-1. 
Code to handle account type 1 
GO TO DONE-WITH-ACCT-TYPE. 
PROCESS-ACCT-TYPE-2. 
Code to handle account type 2 
GO TO DONE-WITH-ACCT-TYPE. 
PROCESS-ACCT-TYPE-3. 
Code to handle account type 3 
DONE-WITH-ACCT-TYPE.
IF ACCT-TYPE = 1 
Code to handle account  type 1 
ELSE IF ACCT-TYPE = 2 
Code to handle account  type 2 
ELSE IF ACCT-TYPE = 3 
Code to handle account  type 3 
ELSE 
Code to handle invalid account  type 
END-IF.
EVALUATE ACCT-TYPE 
WHEN 1 
Code to handle account  type 1 
WHEN 2 
Code to handle account  type 2 
WHEN 3 
Code to handle account  type 3 
WHEN OTHER 
Code to handle invalid account  type 
END-EVALUATE. 
There is no question that ͞modern programming philosophy͟ would prefer the EVALUATE approach.  An 
interesting note is that the code generated by the IF and EVALUATE approaches is virtually identical.  Sometimes, 
NEW, while it might be considered BETTER, doesn͛t always mean DIFFERENT! 
GO
TO  procedure-name
GO
TO procedure-name-1 ...
DEPENDING
ON identifier-1
XDoc.HTML5 Viewer for .NET, Technical Specifications Introductions
XImage.Raster. Adobe PDF. XDoc.PDF. Scanning. XImage.OCR. Acquisition. XImage.Twain. XDoc.HTML5 Viewer for .NET. View, Convert, Edit, Sign Documents and Images.
add signature to pdf acrobat; adding signature to pdf in preview
How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB.NET Tiff, VB.NET Add a new Form Item to the project, and choose to design mode sign.
click to sign pdf; create signature field in pdf
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-57 
6.23.
IF 
Figure 6-63 - IF Syntax 
The IF statement is used to conditionally execute a single 
imperative statement or to select one of two different 
imperative statements based upon the TRUE/FALSE value 
of a conditional expression. 
1.
If conditional-expression evaluates to TRUE, imperative-statement-1 will be executed regardless of whether or not 
an ELSE clause is present.  Once imperative-statement-1 has been executed, control falls into the first statement 
following the END-IF or to the first statement of the next sentence if there is no END-IF clause. 
2.
If the optional ELSE clause is
present and conditional-expression-1 evaluates to FALSE, then (and only then) 
imperative-statement-2 will be executed. Once imperative-statement-2 has been executed, control falls into the 
first statement following the END-IF or to the first statement of the next sentence if there is no END-IF clause. 
3.
See section 6.1.5
for a discussion (and examples) of how periods (.) and END-IF statements are both similar to and 
different from each other in the way they are capable of ending the scope of an IF statement. 
IF 
conditional-expression THEN
imperative-statement-1
[ ELSE 
imperative-statement-2 ]
[ END-IF
]
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-58 
6.24.
INITIALIZE 
Figure 6-64 - INITIALIZE Syntax 
The INITIALIZE 
statement sets the 
elementary 
item(s) specified 
as identifier-1, or 
those elementary 
items subordinate 
to group items 
specified as 
identifier-1 to 
specific values. 
1.
The list of data items eligible to be set to new values by this statement is: 
Every elementary item specified as identifier-1 …, PLUS… 
Every elementary item defined subordinate
to
every group item specified as identifier-1 …, with the following 
exceptions: 
USAGE INDEX items are excluded. 
Items with a REDEFINES as part of their definition are excluded; this means that items subordinate
to
them 
are excluded as well.  The identifier-1 items themselves may have a REDEFINES and may be subordinate to 
an item that has a REDEFINES, however. 
This list is referred to as the list of receiving fields. 
2.
None of the identifier-1 fields may have the OCCUR DEPENDING ON clause (section 5.3
) in their definition nor may 
any items subordinate
to
the identifier-1 fields have an OCCURS DEPENDING ON. 
3.
The optional WITH FILLER clause, if present, will allow FILLER items to be retained in the list of receiving fields 
(otherwise they will be excluded). 
4.
If no TO VALUE or REPLACING clauses are specified, a DEFAULT clause will be assumed. 
5.
If the optional REPLACING clause is specified, every possible MOVE of the sending field to every possible receiving 
field must be legal in order for the INITIALIZE to by syntactically acceptable to the compiler. 
6.
Initialization for each receiving field takes place by applying the first of the following rules that apply to the field: 
If a TO VALUE clause exists, does the receiving field qualify as one of the data categories listed on the clause?  
If it does, the data item will be initialized to it͛s VALUE clause value. 
If a REPLACING clause exists, does the receiving field qualify as one of the data categories listed on the 
clause?  If it does, the receiving field will be initialized to the specified sending field value. 
If a DEFAULT clause exists, initialize the field to a value appropriate to its USAGE (Alphanumeric and Numeric 
initialized to SPACES, Pointer and Program-Pointer initialized to NULL, all numeric and numeric-edited 
initialized to ZERO). 
INITIALIZE
identifier-1…  [  WITH FILLER
]
TO  VALUE
ALL
ALPHABETIC
ALPHANUMERIC
NUMERIC
ALPHANUMERIC-EDITED
NUMERIC-EDITED
NATIONAL
NATIONAL-EDITED
ALL
ALPHABETIC
ALPHANUMERIC
NUMERIC
ALPHANUMERIC-EDITED
NUMERIC-EDITED
NATIONAL
NATIONAL-EDITED
THEN REPLACING
literal-1
identifier-2
DATA BY
[ LENGTH
OF ]
[THEN TO DEFAULT
]
...
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-59 
6.25.
INITIATE 
Figure 6-65 - INITIATE Syntax 
Although syntactically recognized by the OpenCOBOL compiler, the INITIATE 
statement is non-functional because the RWCS (COBOL Report Writer) is not 
currently supported by OpenCOBOL. 
INITIATE
report-name-1 ...
OpenCOBOL 1.1 Programmers Guide 
PROCEDURE DIVISION 
06FEB2009 Version 
Page 6-60 
6.26.
INSPECT 
Figure 6-66 - INSPECT Syntax 
This statement is used to perform various counting or data-alteration operations against strings. 
1.
Identifier-1 and literal-1 must be explicitly or implicitly defined as alphanumeric USAGE DISPLAY data.  Identifier-1 
may be a group item. 
2.
The specification of literal-1 prevents the use of either the REPLACING or CONVERTING clauses. 
3.
To avoid confusion and/or conflicts, the TALLYING, REPLACING and CONVERTING clauses will be executed in the 
order they are coded. 
Additional rules for INSPECT vary, depending upon the clause(s) specified. 
TALLYING clause rules: 
The purpose of the TALLYING clause is to count how many occurrences of a string appear within identifier-1 or 
literal-1. 
1.
Identifier-2 must be an unedited numeric item. 
2.
Identifier-3 and literal-2 must be explicitly or implicitly defined as alphanumeric USAGE DISPLAY data.  
Identifier-3 may be a group item. 
3.
Identifier-2 will be incremented by 1 each time the target string being searched for is found in identifier-1.  
The target string will be: 
a.
Any single character if the CHARACTERS option is used; this form basically just counts total characters 
b.
ALL, all LEADING, only the FIRST or all TRAILING occurrences of Identifier-3 or literal-2. 
4.
Normally the entire literal-1 or identifier-1 string will be scanned.  This behavior may be modified, however, 
using the optional BEFORE|AFTER clause to specify a starting and/or ending point based upon data found in 
the string being scanned. 
literal-1
identifier-1
INSPECT
literal-7
identifier-8
BEFORE
AFTER
INITIAL
...
...
TALLYING
identifier-2FOR
literal-2
identifier-3
ALL
LEADING
TRAILING
CHARACTERS
REPLACING
literal-3
identifier-4
ALL
LEADING
FIRST
TRAILING
CHARACTERS
literal-4
identifier-5
BY
CONVERTING
TO
literal-5
identifier-6
literal-6
identifier-7
Documents you may be interested
Documents you may be interested