Flow Control Nodes alter the execution path of your script dynamically based on input ports. They implement many foundational programming concepts (loops, conditions, etc.) to control to flow of script execution paths.
Nodes:
When a execution path is broken into multiple paths outputs from one path may not be accessible from another. Execution must follow one path at a time, so only outputs from one path may exist.
Consider the lines in the graph below. Either the True or False path will execute. Therefore it is not possible to access the output of GetPosition in Print on the True execution path because the output value would only exist if the False execution path had executed.

As a general rule of thumb, you can always access outputs from a execution path prior to the current point of execution.
Scripts that violate scope constraints will not compile. Each node described below outlines its scope constraints with examples.

If evaluates some condition and executes different paths depending on the Condition condition input port.