In contrast to many other programming languages, YCP
variables can
be defined at (almost) any point in the code, namely between other
statements. Given that, there must be some rules regarding the
creation, destruction and validity of variables. Generally variables
are valid (accessible) within the block they are declared in. This
also covers nested blocks that may exist in this current block. The
valid program region for a variable is called a
scope.
Example 8.22. Variable scopes and blocks
{ // Declared in the outer block integer outer = 42; { // Declared in the inner block integer inner = 84; // This is OK. // Log: ...IN: inner: 84 - outer: 42 y2milestone("IN: inner: %1 - outer: %2", inner, outer); } // This yields an error because "inner" is not defined any more. y2milestone("OUT: inner: %1 - outer: %2", inner, outer); }