Pascal - Declaraciones if-then anidadas
Siempre es legal en la programación Pascal anidar if-else declaraciones, lo que significa que puede usar una if o else if declaración dentro de otra if o else ifdeclaración (s). Pascal permite la anidación a cualquier nivel, sin embargo, si depende de la implementación de Pascal en un sistema en particular.
Sintaxis
La sintaxis de una instrucción if anidada es la siguiente:
if( boolean_expression 1) then
if(boolean_expression 2)then S1
else
S2;
Puede anidar else if-then-else de la misma manera que ha anidado la declaración if-then. Tenga en cuenta que, el anidadoif-then-elseconstructos da lugar a cierta ambigüedad en cuanto a qué enunciado else se empareja con cuál enunciado if. La regla es que la palabra clave else coincide con la primera palabra clave if (buscando hacia atrás) que aún no coincide con una palabra clave else.
La sintaxis anterior es equivalente a
if( boolean_expression 1) then
begin
if(boolean_expression 2)then
S1
else
S2;
end;
No es equivalente a
if ( boolean_expression 1) then
begin
if exp2 then
S1
end;
else
S2;
Por lo tanto, si la situación exige la construcción posterior, entonces debe poner begin y end palabras clave en el lugar correcto.
Ejemplo
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 is true then check the following *)
if ( b = 200 ) then
(* if nested if condition is true then print 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.
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Value of a is 100 and b is 200
Exact value of a is : 100
Exact value of b is : 200