Pascal - Nested if-then Statements
It is always legal in Pascal programming to nest if-else statements, which means you can use one if or else if statement inside another if or else if statement(s). Pascal allows nesting to any level, however, if depends on Pascal implementation on a particular system.
Syntax:
The syntax for a nested if statement is as follows:
if( boolean_expression 1)then if(boolean_expression 2)then S1 else S2;
You can nest else if-then-else in the similar way as you have nested if-then statement. Please note that, the nested if-then-else constructs gives rise to some ambiguity as to which else statement pairs with which if statement. The rule is that the else keyword matches the first if keyword (searching backwards) not already matched by an else keyword.
The above syntax is equivalent to
if( boolean_expression 1)then begin if(boolean_expression 2) then S1 else S2; end;
It is not equivalent to
if( boolean_expression 1)then begin if exp2 then S1 end; else S2;
Therefore if the situation demands the later construct, then you must put begin and end keywords at the right place.
Example:
program nested_ifelseChecking; var {local variable definition } a, b : integer; begin a :=100; b:=200; (* check the boolean condition *) if(a =100)then (*if condition istruethen check the following *) if( b =200)then (*if nested if condition istrue thenprint the following *) writeln('Value of a is 100 and value of b is 200'); writeln('Exact value of a is: ', a ); writeln('Exact value of b is: ', b ); end.
When the above code is compiled and executed, it produces following result:
Value of a is 100 and b is 200 Exact value of a is : 100 Exact value of b is : 200