Statement Categories


All COBOL statements are divided into four categories based on their actions, and they are -

  • Imperative Statements
  • Conditional Statements
  • Delimited scope statements
  • Compiler-directing statements

Imperative Statements -


An Imperative Statement is a procedural instruction specifying an action to be taken during the program's execution. It provides the step-by-step process that the program should follow.

For Example - ACCEPT, MOVE, INSPECT, STRING, UNSTRING, and all statements without ERROR and EXCEPTION phases.

Conditional Statements -


A Conditional statement tests a condition and then executes one or more statements based on the result of that condition. It allows a program to choose the execution flow between different paths based on the truth value (TRUE or FALSE) of a condition or set of conditions. The conditional statements are -

  • IF Statement
  • EVALUATE Statement
  • Statements with conditional phrases

Some statements only work with conditional statements, and those are -

  • CONTINUE
  • NEXT SENTENCE

Delimited scope statements -


Delimited Scope Statement marks the statement ending by specific keywords. This type of statement improves the readability and structure of programs by providing a clear scope of where a particular logic ends.

Explicit Scope terminators -

Explicit scope terminators mark the end of a statement or block of code. They are not common and are specific only to the statement. For example - END-IF, END-CALL, END-COMPUTE, etc.

Implicit Scope terminators -

Implicit scope terminator (.) is used to end the statement implicitly and is used to terminate all statements. For example - Period (.).

Compiler-directive statements -


Compiler-directive statements provide instructions to the compiler about how to compile the source program. It's important to note that these directives are not executable code. Instead, they influence the behavior of the compiler during the compilation process. They don't impact the program exexution but instead it affect the compilation process.

For example - COPY, EJECT, SKIP, etc.